home *** CD-ROM | disk | FTP | other *** search
/ Gold Medal Software 3 / Gold Medal Software - Volume 3 (Gold Medal) (1994).iso / misc / pcpm0494.arj / ART6 < prev    next >
Text File  |  1994-02-07  |  158KB  |  3,085 lines

  1.  
  2. :Introduction:
  3. **************
  4.  
  5. :About This File:
  6. =================
  7.  
  8. This document is a collection of slang terms used by various subcultures
  9. of computer hackers.  Though some technical material is included for
  10. background and flavor, it is not a technical dictionary; what we
  11. describe here is the language hackers use among themselves for fun,
  12. social communication, and technical debate.
  13.  
  14. The `hacker culture' is actually a loosely networked collection of
  15. subcultures that is nevertheless conscious of some important shared
  16. experiences, shared roots, and shared values.  It has its own myths,
  17. heroes, villains, folk epics, in-jokes, taboos, and dreams.  Because
  18. hackers as a group are particularly creative people who define
  19. themselves partly by rejection of `normal' values and working habits, it
  20. has unusually rich and conscious traditions for an intentional culture
  21. less than 35 years old.
  22.  
  23. As usual with slang, the special vocabulary of hackers helps hold their
  24. culture together --- it helps hackers recognize each other's places in
  25. the community and expresses shared values and experiences.  Also as
  26. usual, *not* knowing the slang (or using it inappropriately) defines one
  27. as an outsider, a mundane, or (worst of all in hackish vocabulary)
  28. possibly even a {suit}.  All human cultures use slang in this threefold
  29. way --- as a tool of communication, and of inclusion, and of exclusion.
  30.  
  31. Among hackers, though, slang has a subtler aspect, paralleled perhaps in
  32. the slang of jazz musicians and some kinds of fine artists but hard to
  33. detect in most technical or scientific cultures; parts of it are code
  34. for shared states of *consciousness*.  There is a whole range of altered
  35. states and problem-solving mental stances basic to high-level hacking
  36. which don't fit into conventional linguistic reality any better than a
  37. Coltrane solo or one of Maurits Escher's `trompe l'oeil' compositions
  38. (Escher is a favorite of hackers), and hacker slang encodes these
  39. subtleties in many unobvious ways.  As a simple example, take the
  40. distinction between a {kluge} and an {elegant} solution, and the
  41. differing connotations attached to each.  The distinction is not only of
  42. engineering significance; it reaches right back into the nature of the
  43. generative processes in program design and asserts something important
  44. about two different kinds of relationship between the hacker and the
  45. hack.  Hacker slang is unusually rich in implications of this kind, of
  46. overtones and undertones that illuminate the hackish psyche.
  47.  
  48. But there is more.  Hackers, as a rule, love wordplay and are very
  49. conscious and inventive in their use of language.  These traits seem to
  50. be common in young children, but the conformity-enforcing machine we are
  51. pleased to call an educational system bludgeons them out of most of us
  52. before adolescence.  Thus, linguistic invention in most subcultures of
  53. the modern West is a halting and largely unconscious process.  Hackers,
  54. by contrast, regard slang formation and use as a game to be played for
  55. conscious pleasure.  Their inventions thus display an almost unique
  56. combination of the neotenous enjoyment of language-play with the
  57. discrimination of educated and powerful intelligence.  Further, the
  58. electronic media which knit them together are fluid, `hot' connections,
  59. well adapted to both the dissemination of new slang and the ruthless
  60. culling of weak and superannuated specimens.  The results of this
  61. process give us perhaps a uniquely intense and accelerated view of
  62. linguistic evolution in action.
  63.  
  64. The intensity and consciousness of hackish invention make a compilation
  65. of hacker slang a particularly effective window into the surrounding
  66. culture --- and, in fact, this one is the latest version of an evolving
  67. compilation called the `Jargon File', maintained by hackers themselves
  68. for over 15 years.  This one (like its ancestors) is primarily a
  69. lexicon, but also includes `topic entries' which collect background or
  70. sidelight information on hacker culture that would be awkward to try to
  71. subsume under individual entries.
  72.  
  73. Though the format is that of a reference volume, it is intended that the
  74. material be enjoyable to browse.  Even a complete outsider should find
  75. at least a chuckle on nearly every page, and much that is amusingly
  76. thought-provoking.  But it is also true that hackers use humorous
  77. wordplay to make strong, sometimes combative statements about what they
  78. feel.  Some of these entries reflect the views of opposing sides in
  79. disputes that have been genuinely passionate; this is deliberate.  We
  80. have not tried to moderate or pretty up these disputes; rather we have
  81. attempted to ensure that *everyone's* sacred cows get gored,
  82. impartially.  Compromise is not particularly a hackish virtue, but the
  83. honest presentation of divergent viewpoints is.
  84.  
  85. The reader with minimal computer background who finds some references
  86. incomprehensibly technical can safely ignore them.  We have not felt it
  87. either necessary or desirable to eliminate all such; they, too,
  88. contribute flavor, and one of this document's major intended audiences
  89. --- fledgling hackers already partway inside the culture --- will
  90. benefit from them.
  91.  
  92. Because hackerdom is an intentional culture (one each individual must
  93. choose by action to join), one should not be surprised that the line
  94. between description and influence can become more than a little blurred.
  95.  
  96.  Construction:
  97. =====================
  98.  
  99. There are some standard methods of jargonification that became
  100. established quite early (i.e., before 1970), spreading from such sources
  101. as the Tech Model Railroad Club, the PDP-1 SPACEWAR hackers, and John
  102. McCarthy's original crew of LISPers.  These include the following:
  103.  
  104.  
  105. :1. Verb doubling: ------------------ A standard construction in English
  106. is to double a verb and use it as an exclamation, such as "Bang, bang!"
  107. or "Quack, quack!".  Most of these are names for noises.  Hackers also
  108. double verbs as a concise, sometimes sarcastic comment on what the
  109. implied subject does.  Also, a doubled verb is often used to terminate a
  110. conversation, in the process remarking on the current state of affairs
  111. or what the speaker intends to do next.  Typical examples involve {win},
  112. {lose}, {hack}, {flame}, {barf}, {chomp}:
  113.  
  114.      "The disk heads just crashed."  "Lose, lose."
  115.      "Mostly he talked about his latest crock.  Flame, flame."
  116.      "Boy, what a bagbiter!  Chomp, chomp!"
  117.  
  118. Some verb-doubled constructions have special meanings not immediately
  119. obvious from the verb.  These have their own listings in the lexicon.
  120.  
  121. The USENET culture has one *tripling* convention unrelated to this; the
  122. names of `joke' topic groups often have a tripled last element.  The
  123. paradigmatic example was alt.swedish.chef.bork.bork.bork (a "Sesame
  124. Street" reference); other classics include
  125. alt.wesley.crusher.die.die.die,
  126. comp.unix.internals.system.calls.brk.brk.brk,
  127. sci.physics.edward.teller.boom.boom.boom, and
  128. alt.sadistic.dentists.drill.drill.drill.
  129.  
  130.  
  131. :2. Soundalike slang: --------------------- Hackers will often make
  132. rhymes or puns in order to convert an ordinary word or phrase into
  133. something more interesting.  It is considered particularly {flavorful}
  134. if the phrase is bent so as to include some other jargon word; thus the
  135. computer hobbyist magazine `Dr. Dobb's Journal' is almost always
  136. referred to among hackers as `Dr. Frob's Journal' or simply `Dr.
  137. Frob's'.  Terms of this kind that have been in fairly wide use include
  138. names for newspapers:
  139.  
  140.      Boston Herald => Horrid (or Harried)
  141.      Boston Globe => Boston Glob
  142.      Houston (or San Francisco) Chronicle
  143.             => the Crocknicle (or the Comical)
  144.      New York Times => New York Slime
  145.  
  146. However, terms like these are often made up on the spur of the moment.
  147. Standard examples include:
  148.  
  149.      Data General => Dirty Genitals
  150.      IBM 360 => IBM Three-Sickly
  151.      Government Property --- Do Not Duplicate (on keys)
  152.             => Government Duplicity --- Do Not Propagate
  153.      for historical reasons => for hysterical raisins
  154.      Margaret Jacks Hall (the CS building at Stanford)
  155.             => Marginal Hacks Hall
  156.  
  157. This is not really similar to the Cockney rhyming slang it has been
  158. compared to in the past, because Cockney substitutions are opaque
  159. whereas hacker punning jargon is intentionally transparent.
  160.  
  161.  
  162. :3. The `-P' convention: ------------------------ Turning a word into a
  163. question by appending the syllable `P'; from the LISP convention of
  164. appending the letter `P' to denote a predicate (a boolean-valued
  165. function).  The question should expect a yes/no answer, though it
  166. needn't.  (See {T} and {NIL}.)
  167.  
  168.      At dinnertime:
  169.            Q: "Foodp?"
  170.            A: "Yeah, I'm pretty hungry." or "T!"
  171.  
  172.      At any time:
  173.            Q: "State-of-the-world-P?"
  174.            A: (Straight) "I'm about to go home."
  175.            A: (Humorous) "Yes, the world has a state."
  176.  
  177.      On the phone to Florida:
  178.            Q: "State-p Florida?"
  179.            A: "Been reading JARGON.TXT again, eh?"
  180.  
  181. [One of the best of these is a {Gosperism}.  Once, when we were at a
  182. Chinese restaurant, Bill Gosper wanted to know whether someone would
  183. like to share with him a two-person-sized bowl of soup.  His inquiry
  184. was: "Split-p soup?" --- GLS]
  185.  
  186.  
  187. :4. Overgeneralization: ----------------------- A very conspicuous
  188. feature of jargon is the frequency with which techspeak items such as
  189. names of program tools, command language primitives, and even assembler
  190. opcodes are applied to contexts outside of computing wherever hackers
  191. find amusing analogies to them.  Thus (to cite one of the best-known
  192. examples) UNIX hackers often {grep} for things rather than searching for
  193. them.  Many of the lexicon entries are generalizations of exactly this
  194. kind.
  195.  
  196. Hackers enjoy overgeneralization on the grammatical level as well.  Many
  197. hackers love to take various words and add the wrong endings to them to
  198. make nouns and verbs, often by extending a standard rule to nonuniform
  199. cases (or vice versa).  For example, because
  200.  
  201.      porous => porosity
  202.      generous => generosity
  203.  
  204. hackers happily generalize:
  205.  
  206.      mysterious => mysteriosity
  207.      ferrous => ferrosity
  208.      obvious => obviosity
  209.      dubious => dubiosity
  210.  
  211. Also, note that all nouns can be verbed.  E.g.: "All nouns can be
  212. verbed", "I'll mouse it up", "Hang on while I clipboard it over", "I'm
  213. grepping the files".  English as a whole is already heading in this
  214. direction (towards pure-positional grammar like Chinese); hackers are
  215. simply a bit ahead of the curve.
  216.  
  217. However, note that hackers avoid the unimaginative verb-making
  218. techniques characteristic of marketroids, bean-counters, and the
  219. Pentagon; a hacker would never, for example, `productize', `prioritize',
  220. or `securitize' things.  Hackers have a strong aversion to bureaucratic
  221. bafflegab and regard those who use it with contempt.
  222.  
  223. Similarly, all verbs can be nouned.  This is only a slight
  224. overgeneralization in modern English; in hackish, however, it is good
  225. form to mark them in some standard nonstandard way.  Thus:
  226.  
  227.      win => winnitude, winnage
  228.      disgust => disgustitude
  229.      hack => hackification
  230.  
  231. Further, note the prevalence of certain kinds of nonstandard plural
  232. forms.  Some of these go back quite a ways; the TMRC Dictionary noted
  233. that the defined plural of `caboose' is `cabeese', and includes an entry
  234. which implies that the plural of `mouse' is {meeces}.  On a similarly
  235. Anglo-Saxon note, almost anything ending in `x' may form plurals in
  236. `-xen' (see {VAXen} and {boxen} in the main text).  Even words ending in
  237. phonetic /k/ alone are sometimes treated this way; e.g., `soxen' for a
  238. bunch of socks.  Other funny plurals are `frobbotzim' for the plural of
  239. `frobbozz' (see {frobnitz}) and `Unices' and `Twenices' (rather than
  240. `Unixes' and `Twenexes'; see {UNIX}, {TWENEX} in main text).  But note
  241. that `Unixen' and `Twenexen' are never used; it has been suggested that
  242. this is because `-ix' and `-ex' are Latin singular endings that attract
  243. a Latinate plural.  Finally, it has been suggested to general approval
  244. that the plural of `mongoose' ought to be `polygoose'.
  245.  
  246. The pattern here, as with other hackish grammatical quirks, is
  247. generalization of an inflectional rule that in English is either an
  248. import or a fossil (such as the Hebrew plural ending `-im', or the
  249. Anglo-Saxon plural suffix `-en') to cases where it isn't normally
  250. considered to apply.
  251.  
  252. This is not `poor grammar', as hackers are generally quite well aware of
  253. what they are doing when they distort the language.  It is grammatical
  254. creativity, a form of playfulness.  It is done not to impress but to
  255. amuse, and never at the expense of clarity.
  256.  
  257.  
  258. :5. Spoken inarticulations: --------------------------- Words such as
  259. `mumble', `sigh', and `groan' are spoken in places where their referent
  260. might more naturally be used.  It has been suggested that this usage
  261. derives from the impossibility of representing such noises on a comm
  262. link or in electronic mail (interestingly, the same sorts of
  263. constructions have been showing up with increasing frequency in comic
  264. strips).  Another expression sometimes heard is "Complain!", meaning "I
  265. have a complaint!"
  266.  
  267.  
  268. :6. Anthromorphization: ----------------------- Semantically, one rich
  269. source of jargon constructions is the hackish tendency to
  270. anthropomorphize hardware and software.  This isn't done in a na"ive
  271. way; hackers don't personalize their stuff in the sense of feeling
  272. empathy with it, nor do they mystically believe that the things they
  273. work on every day are `alive'.  What *is* common is to hear hardware or
  274. software talked about as though it has homunculi talking to each other
  275. inside it, with intentions and desires.  Thus, one hears "The protocol
  276. handler got confused", or that programs "are trying" to do things, or
  277. one may say of a routine that "its goal in life is to X".  One even
  278. hears explanations like "...  and its poor little brain couldn't
  279. understand X, and it died."  Sometimes modelling things this way
  280. actually seems to make them easier to understand, perhaps because it's
  281. instinctively natural to think of anything with a really complex
  282. behavioral repertoire as `like a person' rather than `like a thing'.
  283.  
  284.  
  285.  
  286. Of the six listed constructions, verb doubling, peculiar noun
  287. formations, anthromorphization, and (especially) spoken inarticulations
  288. have become quite general; but punning jargon is still largely confined
  289. to MIT and other large universities, and the `-P' convention is found
  290. only where LISPers flourish.
  291.  
  292. Finally, note that many words in hacker jargon have to be understood as
  293. members of sets of comparatives.  This is especially true of the
  294. adjectives and nouns used to describe the beauty and functional quality
  295. of code.  Here is an approximately correct spectrum:
  296.  
  297.      monstrosity  brain-damage  screw  bug  lose  misfeature
  298.      crock  kluge  hack  win  feature  elegance  perfection
  299.  
  300. The last is spoken of as a mythical absolute, approximated but never
  301. actually attained.  Another similar scale is used for describing the
  302. reliability of software:
  303.  
  304.      broken  flaky  dodgy  fragile  brittle
  305.      solid  robust  bulletproof  armor-plated
  306.  
  307. Note, however, that `dodgy' is primarily Commonwealth hackish (it is
  308. rare in the U.S.) and may change places with `flaky' for some speakers.
  309.  
  310. Coinages for describing {lossage} seem to call forth the very finest in
  311. hackish linguistic inventiveness; it has been truly said that hackers
  312. have even more words for equipment failures than Yiddish has for
  313. obnoxious people.
  314.  
  315. :How to Use the Lexicon:
  316. ************************
  317.  
  318. :Pronunciation Guide:
  319. =====================
  320.  
  321. Pronunciation keys are provided in the jargon listings for all entries
  322. that are neither dictionary words pronounced as in standard English nor
  323. obvious compounds thereof.  Slashes bracket phonetic pronunciations,
  324. which are to be interpreted using the following conventions:
  325.  
  326.   1. Syllables are hyphen-separated, except that an accent or back-accent
  327.      follows each accented syllable (the back-accent marks a secondary
  328.      accent in some words of four or more syllables).
  329.  
  330.   2. Consonants are pronounced as in American English.  The letter `g' is
  331.      always hard (as in "got" rather than "giant"); `ch' is soft
  332.      ("church" rather than "chemist").  The letter `j' is the sound
  333.      that occurs twice in "judge".  The letter `s' is always as in
  334.      "pass", never a z sound.  The digraph `kh' is the guttural of
  335.      "loch" or "l'chaim".
  336.  
  337.   3. Uppercase letters are pronounced as their English letter names; thus
  338.      (for example) /H-L-L/ is equivalent to /aitch el el/.  /Z/ may
  339.      be pronounced /zee/ or /zed/ depending on your local dialect.
  340.  
  341.   4. Vowels are represented as follows:
  342.  
  343.      a
  344.             back, that
  345.      ar
  346.             far, mark
  347.      aw
  348.             flaw, caught
  349.      ay
  350.             bake, rain
  351.      e
  352.             less, men
  353.      ee
  354.             easy, ski
  355.      eir
  356.             their, software
  357.      i
  358.             trip, hit
  359.      i:
  360.             life, sky
  361.      o
  362.             father, palm
  363.      oh
  364.             flow, sew
  365.      oo
  366.             loot, through
  367.      or
  368.             more, door
  369.      ow
  370.             out, how
  371.      oy
  372.             boy, coin
  373.      uh
  374.             but, some
  375.      u
  376.             put, foot
  377.      y
  378.             yet, young
  379.      yoo
  380.             few, chew
  381.      [y]oo
  382.             /oo/ with optional fronting as in `news' (/nooz/ or /nyooz/)
  383.  
  384. A /*/ is used for the `schwa' sound of unstressed or occluded vowels
  385. (the one that is often written with an upside-down `e').  The schwa
  386. vowel is omitted in syllables containing vocalic r, l, m or n; that is,
  387. `kitten' and `color' would be rendered /kit'n/ and /kuhl'r/, not
  388. /kit'*n/ and /kuhl'*r/.
  389.  
  390. Entries with a pronunciation of `//' are written-only usages.  (No, UNIX
  391. weenies, this does *not* mean `pronounce like previous pronunciation'!)
  392.  
  393. Various abbreviations used frequently in the lexicon are summarized here:
  394.  
  395. abbrev.
  396.      abbreviation
  397. adj.
  398.      adjective
  399. adv.
  400.      adverb
  401. alt.
  402.      alternate
  403. cav.
  404.      caveat
  405. esp.
  406.      especially
  407. excl.
  408.      exclamation
  409. imp.
  410.      imperative
  411. interj.
  412.      interjection
  413. n.
  414.      noun
  415. obs.
  416.      obsolete
  417. pl.
  418.      plural
  419. poss.
  420.      possibly
  421. pref.
  422.      prefix
  423. prob.
  424.      probably
  425. prov.
  426.      proverbial
  427. quant.
  428.      quantifier
  429. suff.
  430.      suffix
  431. syn.
  432.      synonym (or synonymous with)
  433. v.
  434.      verb (may be transitive or intransitive)
  435. var.
  436.      variant
  437. vi.
  438.      intransitive verb
  439. vt.
  440.      transitive verb
  441.  
  442. Where alternate spellings or pronunciations are given, alt.
  443. separates two possibilities with nearly equal distribution, while
  444. var. prefixes one that is markedly less common than the primary.
  445.  
  446. Where a term can be attributed to a particular subculture or is known
  447. to have originated there, we have tried to so indicate.  Here is a
  448. list of abbreviations used in etymologies:
  449.  
  450. Berkeley
  451.      University of California at Berkeley
  452. Cambridge
  453.      the university in England (*not* the city in Massachusetts where
  454.      MIT happens to be located!)
  455. BBN
  456.      Bolt, Beranek & Newman
  457. CMU
  458.      Carnegie-Mellon University
  459. Commodore
  460.      Commodore Business Machines
  461. DEC
  462.      The Digital Equipment Corporation
  463. Fairchild
  464.      The Fairchild Instruments Palo Alto development group
  465. Fidonet
  466.      See the {Fidonet} entry
  467. IBM
  468.      International Business Machines
  469. MIT
  470.      Massachusetts Institute of Technology; esp. the legendary MIT AI Lab
  471.      culture of roughly 1971 to 1983 and its feeder groups, including the
  472.      Tech Model Railroad Club
  473. NYU
  474.      New York University
  475. OED
  476.      The Oxford English Dictionary
  477. Purdue
  478.      Purdue University
  479. SAIL
  480.      Stanford Artificial Intelligence Laboratory (at Stanford
  481.      University)
  482. SI
  483.      From Syst`eme International, the name for the standard
  484.      conventions of metric nomenclature used in the sciences
  485. Stanford
  486.      Stanford University
  487. Sun
  488.      Sun Microsystems
  489. TMRC
  490.      Some MITisms go back as far as the Tech Model Railroad Club (TMRC) at
  491.      MIT c. 1960.  Material marked TMRC is from `An Abridged Dictionary
  492.      of the TMRC Language', originally compiled by Pete Samson in 1959
  493. UCLA
  494.      University of California at Los Angeles
  495. UK
  496.      the United Kingdom (England, Wales, Scotland, Northern Ireland)
  497. USENET
  498.      See the {USENET} entry
  499. WPI
  500.      Worcester Polytechnic Institute, site of a very active community of
  501.      PDP-10 hackers during the 1970s
  502. XEROX PARC
  503.      XEROX's Palo Alto Research Center, site of much pioneering research in
  504.      user interface design and networking
  505. Yale
  506.      Yale University
  507.  
  508. The Jargon Lexicon
  509. ******************
  510.  
  511. = A =
  512. =====
  513.  
  514. :abbrev: /*-breev'/, /*-brev'/ n. Common abbreviation for
  515.    `abbreviation'.
  516.  
  517. :ABEND: [ABnormal END] /ah'bend/, /*-bend'/ n. Abnormal
  518.    termination (of software); {crash}; {lossage}.  Derives from an
  519.    error message on the IBM 360; used jokingly by hackers but
  520.    seriously mainly by {code grinder}s.  Usually capitalized, but may
  521.    appear as `abend'.  Hackers will try to persuade you that ABEND is
  522.    called `abend' because it is what system operators do to the
  523.    machine late on Friday when they want to call it a day, and hence
  524.    is from the German `Abend' = `Evening'.
  525.  
  526. :accumulator: n. 1. Archaic term for a register.  On-line use of it
  527.    as a synonym for `register' is a fairly reliable indication that
  528.    the user has been around for quite a while and/or that the
  529.    architecture under discussion is quite old.  The term in full is
  530.    almost never used of microprocessor registers, for example, though
  531.    symbolic names for arithmetic registers beginning in `A' derive
  532.    from historical use of the term `accumulator' (and not, actually,
  533.    from `arithmetic').  Confusingly, though, an `A' register name
  534.    prefix may also stand for `address', as for example on the
  535.    Motorola 680x0 family.  2. A register being used for arithmetic or
  536.    logic (as opposed to addressing or a loop index), especially one
  537.    being used to accumulate a sum or count of many items.  This use is
  538.    in context of a particular routine or stretch of code.  "The
  539.    FOOBAZ routine uses A3 as an accumulator."  3. One's in-basket
  540.    (esp. among old-timers who might use sense 1).  "You want this
  541.    reviewed?  Sure, just put it in the accumulator."  (See {stack}.)
  542.  
  543. :ACK: /ak/ interj. 1. [from the ASCII mnemonic for 0000110]
  544.    Acknowledge.  Used to register one's presence (compare mainstream
  545.    *Yo!*).  An appropriate response to {ping} or {ENQ}.
  546.    2. [from the comic strip "Bloom County"] An exclamation of
  547.    surprised disgust, esp. in "Ack pffft!"  Semi-humorous.
  548.    Generally this sense is not spelled in caps (ACK) and is
  549.    distinguished by a following exclamation point.  3. Used to
  550.    politely interrupt someone to tell them you understand their point
  551.    (see {NAK}).  Thus, for example, you might cut off an overly
  552.    long explanation with "Ack.  Ack.  Ack.  I get it now".
  553.  
  554.    There is also a usage "ACK?" (from sense 1) meaning "Are you
  555.    there?", often used in email when earlier mail has produced no
  556.    reply, or during a lull in {talk mode} to see if the person has
  557.    gone away (the standard humorous response is of course {NAK}
  558.    (sense 2), i.e., "I'm not here").
  559.  
  560. :ad-hockery: /ad-hok'*r-ee/ [Purdue] n. 1. Gratuitous assumptions
  561.    made inside certain programs, esp. expert systems, which lead to
  562.    the appearance of semi-intelligent behavior but are in fact
  563.    entirely arbitrary.  For example, fuzzy-matching input tokens that
  564.    might be typing errors against a symbol table can make it look as
  565.    though a program knows how to spell.  2. Special-case code to cope
  566.    with some awkward input that would otherwise cause a program to
  567.    {choke}, presuming normal inputs are dealt with in some cleaner
  568.    and more regular way.  Also called `ad-hackery', `ad-hocity'
  569.    (/ad-hos'*-tee/).  See also {ELIZA effect}.
  570.  
  571. :Ada:: n. A {{Pascal}}-descended language that has been made
  572.    mandatory for Department of Defense software projects by the
  573.    Pentagon.  Hackers are nearly unanimous in observing that,
  574.    technically, it is precisely what one might expect given that kind
  575.    of endorsement by fiat; designed by committee, crockish, difficult
  576.    to use, and overall a disastrous, multi-billion-dollar boondoggle
  577.    (one common description is "The PL/I of the 1980s").  Hackers
  578.    find Ada's exception-handling and inter-process communication
  579.    features particularly hilarious.  Ada Lovelace (the daughter of
  580.    Lord Byron who became the world's first programmer while
  581.    cooperating with Charles Babbage on the design of his mechanical
  582.    computing engines in the mid-1800s) would almost certainly blanch
  583.    at the use to which her name has latterly been put; the kindest
  584.    thing that has been said about it is that there is probably a good
  585.    small language screaming to get out from inside its vast,
  586.    {elephantine} bulk.
  587.  
  588. :adger: /aj'r/ [UCLA] vt. To make a bonehead move with consequences
  589.    that could have been foreseen with a slight amount of mental
  590.    effort.  E.g., "He started removing files and promptly adgered the
  591.    whole project".  Compare {dumbass attack}.
  592.  
  593. :admin: /ad-min'/ n. Short for `administrator'; very commonly
  594.    used in speech or on-line to refer to the systems person in charge
  595.    on a computer.  Common constructions on this include `sysadmin'
  596.    and `site admin' (emphasizing the administrator's role as a site
  597.    contact for email and news) or `newsadmin' (focusing specifically
  598.    on news).  Compare {postmaster}, {sysop}, {system
  599.    mangler}.
  600.  
  601. :ADVENT: /ad'vent/ n. The prototypical computer adventure game, first
  602.    implemented on the {PDP-10} by Will Crowther as an attempt at
  603.    computer-refereed fantasy gaming, and expanded into a
  604.    puzzle-oriented game by Don Woods.  Now better known as Adventure,
  605.    but the {{TOPS-10}} operating system permitted only 6-letter
  606.    filenames.  See also {vadding}.
  607.  
  608.    This game defined the terse, dryly humorous style now expected in
  609.    text adventure games, and popularized several tag lines that have
  610.    become fixtures of hacker-speak:  "A huge green fierce snake bars
  611.    the way!"  "I see no X here" (for some noun X).  "You are in a
  612.    maze of twisty little passages, all alike."  "You are in a little
  613.    maze of twisty passages, all different."  The `magic words'
  614.    {xyzzy} and {plugh} also derive from this game.
  615.  
  616.    Crowther, by the way, participated in the exploration of the
  617.    Mammoth & Flint Ridge cave system; it actually *has* a
  618.    `Colossal Cave' and a `Bedquilt' as in the game, and the `Y2' that
  619.    also turns up is cavers' jargon for a map reference to a secondary
  620.    entrance.
  621.  
  622. :AI-complete: /A-I k*m-pleet'/ [MIT, Stanford: by analogy with
  623.    `NP-complete' (see {NP-})] adj. Used to describe problems or
  624.    subproblems in AI, to indicate that the solution presupposes a
  625.    solution to the `strong AI problem' (that is, the synthesis of a
  626.    human-level intelligence).  A problem that is AI-complete is, in
  627.    other words, just too hard.
  628.  
  629.    Examples of AI-complete problems are `The Vision Problem'
  630.    (building a system that can see as well as a human) and `The
  631.    Natural Language Problem' (building a system that can understand
  632.    and speak a natural language as well as a human).  These may appear
  633.    to be modular, but all attempts so far (1991) to solve them have
  634.    foundered on the amount of context information and `intelligence'
  635.    they seem to require. See also {gedanken}.
  636.  
  637. :AI koans: /A-I koh'anz/ pl.n. A series of pastiches of Zen
  638.    teaching riddles created by Danny Hillis at the MIT AI Lab around
  639.    various major figures of the Lab's culture (several are included
  640.    under "{A Selection of AI Koans}" in {appendix
  641.    A}).  See also {ha ha only serious}, {mu}, and {{Humor,
  642.    Hacker}}.
  643.  
  644. :AIDS: /aydz/ n. Short for A* Infected Disk Syndrome (`A*' is a
  645.    {glob} pattern that matches, but is not limited to, Apple),
  646.    this condition is quite often the result of practicing unsafe
  647.    {SEX}.  See {virus}, {worm}, {Trojan horse},
  648.    {virgin}.
  649.  
  650. :AIDX: n. /aydkz/ n. Derogatory term for IBM's perverted version
  651.    of UNIX, AIX, especially for the AIX 3.? used in the IBM RS/6000
  652.    series.  A victim of the dreaded "hybridism" disease, this
  653.    attempt to combine the two main currents of the UNIX stream
  654.    ({BSD} and {USG UNIX}) became a {monstrosity} to haunt
  655.    system administrators' dreams.  For example, if new accounts are
  656.    created while many users are logged on, the load average jumps
  657.    quickly over 20 due to silly implementation of the user databases.
  658.    For a quite similar disease, compare {HP-SUX}.
  659.  
  660. :airplane rule: n. "Complexity increases the possibility of
  661.    failure; a twin-engine airplane has twice as many engine problems
  662.    as a single-engine airplane."  By analogy, in both software and
  663.    electronics, the rule that simplicity increases robustness (see
  664.    also {KISS Principle}).  It is correspondingly argued that the
  665.    right way to build reliable systems is to put all your eggs in one
  666.    basket, after making sure that you've built a really *good*
  667.    basket.
  668.  
  669. :aliasing bug: n. A class of subtle programming errors that can
  670.    arise in code that does dynamic allocation, esp. via
  671.    `malloc(3)' or equivalent.  If more than one pointer addresses
  672.    (`aliases for') a given hunk of storage, it may happen that the
  673.    storage is freed through one alias and then referenced through
  674.    another, which may lead to subtle (and possibly intermittent)
  675.    lossage depending on the state and the allocation history of the
  676.    malloc {arena}.  Avoidable by use of allocation strategies that
  677.    never alias allocated core.  Also avoidable by use of higher-level
  678.    languages, such as {LISP}, which employ a garbage collector
  679.    (see {GC}).  Also called a {stale pointer bug}.  See also
  680.    {precedence lossage}, {smash the stack}, {fandango on
  681.    core}, {memory leak}, {memory smash}, {overrun screw},
  682.    {spam}.
  683.  
  684.    Historical note: Though this term is nowadays associated with
  685.    C programming, it was already in use in a very similar sense in the
  686.    Algol-60 and FORTRAN communities in the 1960s.
  687.  
  688. :all-elbows: adj. Of a TSR (terminate-and-stay-resident) IBM PC
  689.    program, such as the N pop-up calendar and calculator utilities
  690.    that circulate on {BBS} systems: unsociable.  Used to describe a
  691.    program that rudely steals the resources that it needs without
  692.    considering that other TSRs may also be resident.  One particularly
  693.    common form of rudeness is lock-up due to programs fighting over
  694.    the keyboard interrupt.  See {rude}, also {mess-dos}.
  695.  
  696. :alpha particles: n. See {bit rot}.
  697.  
  698. :ALT: /awlt/ 1. n. The ALT shift key on an IBM PC or {clone}.
  699.    2. [possibly lowercased] n. The `clover' or `Command' key on a
  700.    Macintosh; use of this term usually reveals that the speaker hacked
  701.    PCs before coming to the Mac (see also {feature key}).  Some Mac
  702.    hackers, confusingly, reserve `ALT' for the Option key.  3. n.obs.
  703.    [PDP-10] Alternate name for the ASCII ESC character (ASCII
  704.    0011011), after the keycap labeling on some older terminals.  Also
  705.    `ALTMODE' (/awlt'mohd/).  This character was almost never
  706.    pronounced `escape' on an ITS system, in {TECO}, or under
  707.    TOPS-10 --- always ALT, as in "Type ALT ALT to end a TECO
  708.    command" or "ALT U onto the system" (for "log onto the [ITS]
  709.    system").  This was probably because ALT is more convenient to say
  710.    than `escape', especially when followed by another ALT or a
  711.    character (or another ALT *and* a character, for that matter).
  712.  
  713. :alt bit: /awlt bit/ [from alternate] adj. See {meta bit}.
  714.  
  715. :Aluminum Book: [MIT] n. `Common LISP: The Language', by
  716.    Guy L.  Steele Jr. (Digital Press, first edition 1984, second
  717.    edition 1990).  Note that due to a technical screwup some printings
  718.    of the second edition are actually of a color the author describes
  719.    succinctly as "yucky green".  See also {{book titles}}.
  720.  
  721. :amoeba: n. Humorous term for the Commodore Amiga personal computer.
  722.  
  723. :amp off: [Purdue] vt. To run in {background}.  From the UNIX shell `&'
  724.    operator.
  725.  
  726. :amper: n. Common abbreviation for the name of the ampersand (`&',
  727.    ASCII 0100110) character.  See {{ASCII}} for other synonyms.
  728.  
  729. :angle brackets: n. Either of the characters `<' (ASCII
  730.    0111100) and `>' (ASCII 0111110) (ASCII less-than or
  731.    greater-than signs).  The {Real World} angle brackets used by
  732.    typographers are actually taller than a less-than or greater-than
  733.    sign.
  734.    See {broket}, {{ASCII}}.
  735.  
  736. :angry fruit salad: n. A bad visual-interface design that uses too
  737.    many colors.  This derives, of course, from the bizarre day-glo
  738.    colors found in canned fruit salad.  Too often one sees similar
  739.    affects from interface designers using color window systems such as
  740.    {X}; there is a tendency to create displays that are flashy and
  741.    attention-getting but uncomfortable for long-term use.
  742.  
  743. :annoybot: /*-noy-nott/ [IRC] n. See {robot}.
  744.  
  745. :AOS: 1. /aws/ (East Coast), /ay-os/ (West Coast) [based on a
  746.    PDP-10 increment instruction] vt.,obs. To increase the amount of
  747.    something.  "AOS the campfire."  Usage: considered silly, and now
  748.    obsolete.  Now largely supplanted by {bump}.  See {SOS}.  2. A
  749.    {{Multics}}-derived OS supported at one time by Data General.  This
  750.    was pronounced /A-O-S/ or /A-os/.  A spoof of the standard
  751.    AOS system administrator's manual (`How to Load and Generate
  752.    your AOS System') was created, issued a part number, and circulated
  753.    as photocopy folklore.  It was called `How to Goad and
  754.    Levitate your CHAOS System'.  3. Algebraic Operating System, in
  755.    reference to those calculators which use infix instead of postfix
  756.    (reverse Polish) notation.
  757.  
  758.    Historical note: AOS in sense 1 was the name of a {PDP-10}
  759.    instruction that took any memory location in the computer and added
  760.    1 to it; AOS meant `Add One and do not Skip'.  Why, you may ask,
  761.    does the `S' stand for `do not Skip' rather than for `Skip'?  Ah,
  762.    here was a beloved piece of PDP-10 folklore.  There were eight such
  763.    instructions: AOSE added 1 and then skipped the next instruction
  764.    if the result was Equal to zero; AOSG added 1 and then skipped if
  765.    the result was Greater than 0; AOSN added 1 and then skipped
  766.    if the result was Not 0; AOSA added 1 and then skipped Always;
  767.    and so on.  Just plain AOS didn't say when to skip, so it never
  768.    skipped.
  769.  
  770.    For similar reasons, AOJ meant `Add One and do not Jump'.  Even
  771.    more bizarre, SKIP meant `do not SKIP'!  If you wanted to skip the
  772.    next instruction, you had to say `SKIPA'.  Likewise, JUMP meant
  773.    `do not JUMP'; the unconditional form was JUMPA.  However, hackers
  774.    never did this.  By some quirk of the 10's design, the {JRST}
  775.    (Jump and ReSTore flag with no flag specified) was actually faster
  776.    and so was invariably used.  Such were the perverse mysteries of
  777.    assembler programming.
  778.  
  779. :app: /ap/ n. Short for `application program', as opposed to a
  780.    systems program.  What systems vendors are forever chasing
  781.    developers to create for their environments so they can sell more
  782.    boxes.  Hackers tend not to think of the things they themselves run
  783.    as apps; thus, in hacker parlance the term excludes compilers,
  784.    program editors, games, and messaging systems, though a user would
  785.    consider all those to be apps.  Oppose {tool}, {operating
  786.    system}.
  787.  
  788. :arc: [primarily MSDOS] vt. To create a compressed {archive} from a
  789.    group of files using SEA ARC, PKWare PKARC, or a compatible
  790.    program.  Rapidly becoming obsolete as the ARC compression method
  791.    is falling into disuse, having been replaced by newer compression
  792.    techniques.  See {tar and feather}, {zip}.
  793.  
  794. :arc wars: [primarily MSDOS] n. {holy wars} over which archiving
  795.    program one should use.  The first arc war was sparked when System
  796.    Enhancement Associates (SEA) sued PKWare for copyright and
  797.    trademark infringement on its ARC program.  PKWare's PKARC
  798.    outperformed ARC on both compression and speed while largely
  799.    retaining compatibility (it introduced a new compression type that
  800.    could be disabled for backward-compatibility).  PKWare settled out
  801.    of court to avoid enormous legal costs (both SEA and PKWare are
  802.    small companies); as part of the settlement, the name of PKARC was
  803.    changed to PKPAK.  The public backlash against SEA for bringing
  804.    suit helped to hasten the demise of ARC as a standard when PKWare
  805.    and others introduced new, incompatible archivers with better
  806.    compression algorithms.
  807.  
  808. :archive: n. 1. A collection of several files bundled into one file
  809.    by a program such as `ar(1)', `tar(1)', `cpio(1)',
  810.    or {arc} for shipment or archiving (sense 2).  See also {tar
  811.    and feather}.  2. A collection of files or archives (sense 1) made
  812.    available from an `archive site' via {FTP} or an email server.
  813.  
  814. :arena: [UNIX] n. The area of memory attached to a process by
  815.    `brk(2)' and `sbrk(2)' and used by `malloc(3)' as
  816.    dynamic storage.  So named from a semi-mythical `malloc:
  817.    corrupt arena' message supposedly emitted when some early versions
  818.    became terminally confused.  See {overrun screw}, {aliasing
  819.    bug}, {memory leak}, {memory smash}, {smash the stack}.
  820.  
  821. :arg: /arg/ n. Abbreviation for `argument' (to a function),
  822.    used so often as to have become a new word (like `piano' from
  823.    `pianoforte').  "The sine function takes 1 arg, but the
  824.    arc-tangent function can take either 1 or 2 args."  Compare
  825.    {param}, {parm}, {var}.
  826.  
  827. :armor-plated: n. Syn. for {bulletproof}.
  828.  
  829. :asbestos: adj. Used as a modifier to anything intended to protect
  830.    one from {flame}s.  Important cases of this include {asbestos
  831.    longjohns} and {asbestos cork award}, but it is used more
  832.    generally.
  833.  
  834. :asbestos cork award: n. Once, long ago at MIT, there was a {flamer}
  835.    so consistently obnoxious that another hacker designed, had made,
  836.    and distributed posters announcing that said flamer had been
  837.    nominated for the `asbestos cork award'.  Persons in any doubt as
  838.    to the intended application of the cork should consult the
  839.    etymology under {flame}.  Since then, it is agreed that only a
  840.    select few have risen to the heights of bombast required to earn
  841.    this dubious dignity --- but there is no agreement on *which*
  842.    few.
  843.  
  844. :asbestos longjohns: n. Notional garments often donned by {USENET}
  845.    posters just before emitting a remark they expect will elicit
  846.    {flamage}.  This is the most common of the {asbestos} coinages.
  847.    Also `asbestos underwear', `asbestos overcoat', etc.
  848.  
  849. :ASCII:: [American Standard Code for Information Interchange]
  850.    /as'kee/ n. The predominant character set encoding of present-day
  851.    computers.  Uses 7 bits for each character, whereas most earlier
  852.    codes (including an early version of ASCII) used fewer.  This
  853.    change allowed the inclusion of lowercase letters --- a major
  854.    {win} --- but it did not provide for accented letters or any
  855.    other letterforms not used in English (such as the German sharp-S
  856.    and the ae-ligature
  857.    which is a letter in, for example, Norwegian).  It could be worse,
  858.    though.  It could be much worse.  See {{EBCDIC}} to understand how.
  859.    
  860.    Computers are much pickier and less flexible about spelling than
  861.    humans; thus, hackers need to be very precise when talking about
  862.    characters, and have developed a considerable amount of verbal
  863.    shorthand for them.  Every character has one or more names --- some
  864.    formal, some concise, some silly.  Common jargon names for ASCII
  865.    characters are collected here.  See also individual entries for
  866.    {bang}, {excl}, {open}, {ques}, {semi}, {shriek},
  867.    {splat}, {twiddle}, and {Yu-Shiang Whole Fish}.
  868.  
  869.    This list derives from revision 2.3 of the USENET ASCII
  870.    pronunciation guide.  Single characters are listed in ASCII order;
  871.    character pairs are sorted in by first member.  For each character,
  872.    common names are given in rough order of popularity, followed by
  873.    names that are reported but rarely seen; official ANSI/CCITT names
  874.    are surrounded by brokets: <>.  Square brackets mark the
  875.    particularly silly names introduced by {INTERCAL}.  Ordinary
  876.    parentheticals provide some usage information.
  877.  
  878.      !
  879.           Common: {bang}; pling; excl; shriek; <exclamation mark>.
  880.           Rare: factorial; exclam; smash; cuss; boing; yell; wow; hey;
  881.           wham; [spark-spot]; soldier.
  882.  
  883.      "
  884.           Common: double quote; quote.  Rare: literal mark;
  885.           double-glitch; <quotation marks>; <dieresis>; dirk;
  886.           [rabbit-ears]; double prime.
  887.  
  888.      #
  889.           Common: <number sign>; pound; pound sign; hash; sharp;
  890.           {crunch}; hex; [mesh]; octothorpe.  Rare: flash; crosshatch;
  891.           grid; pig-pen; tictactoe; scratchmark; thud; thump; {splat}.
  892.  
  893.      $
  894.           Common: dollar; <dollar sign>.  Rare: currency symbol; buck;
  895.           cash; string (from BASIC); escape (when used as the echo of
  896.           ASCII ESC); ding; cache; [big money].
  897.  
  898.      %
  899.           Common: percent; <percent sign>; mod; grapes.  Rare:
  900.           [double-oh-seven].
  901.  
  902.      &
  903.           Common: <ampersand>; amper; and.  Rare: address (from C);
  904.           reference (from C++); andpersand; bitand; background (from
  905.           `sh(1)'); pretzel; amp.  [INTERCAL called this `ampersand';
  906.           what could be sillier?]
  907.  
  908.      '
  909.           Common: single quote; quote; <apostrophe>.  Rare: prime;
  910.           glitch; tick; irk; pop; [spark]; <closing single quotation
  911.           mark>; <acute accent>.
  912.  
  913.      ()
  914.           Common: left/right paren; left/right parenthesis; left/right;
  915.           paren/thesis; open/close paren; open/close; open/close
  916.           parenthesis; left/right banana.  Rare: so/al-ready;
  917.           lparen/rparen; <opening/closing parenthesis>; open/close round
  918.           bracket, parenthisey/unparenthisey; [wax/wane]; left/right
  919.           ear.
  920.  
  921.      *
  922.           Common: star; [{splat}]; <asterisk>.  Rare: wildcard; gear;
  923.           dingle; mult; spider; aster; times; twinkle; glob (see
  924.           {glob}); {Nathan Hale}.
  925.  
  926.      +
  927.           Common: <plus>; add.  Rare: cross; [intersection].
  928.  
  929.      ,
  930.           Common: <comma>.  Rare: <cedilla>; [tail].
  931.  
  932.      -
  933.           Common: dash; <hyphen>; <minus>.  Rare: [worm]; option; dak;
  934.           bithorpe.
  935.  
  936.      .
  937.           Common: dot; point; <period>; <decimal point>.  Rare: radix
  938.           point; full stop; [spot].
  939.  
  940.      /
  941.           Common: slash; stroke; <slant>; forward slash.  Rare:
  942.           diagonal; solidus; over; slak; virgule; [slat].
  943.  
  944.      :
  945.           Common: <colon>.  Rare: dots; [two-spot].
  946.  
  947.      ;
  948.           Common: <semicolon>; semi.  Rare: weenie; [hybrid],
  949.           pit-thwong.
  950.  
  951.      <>
  952.           Common: <less/greater than>; left/right angle bracket;
  953.           bra/ket; left/right broket.  Rare: from/{into, towards}; read
  954.           from/write to; suck/blow; comes-from/gozinta; in/out;
  955.           crunch/zap (all from UNIX); [angle/right angle].
  956.  
  957.      =
  958.           Common: <equals>; gets; takes.  Rare: quadrathorpe;
  959.           [half-mesh].
  960.  
  961.      ?
  962.           Common: query; <question mark>; {ques}.  Rare: whatmark;
  963.           [what]; wildchar; huh; hook; buttonhook; hunchback.
  964.  
  965.      @
  966.           Common: at sign; at; strudel.  Rare: each; vortex; whorl;
  967.           [whirlpool]; cyclone; snail; ape; cat; rose; cabbage;
  968.           <commercial at>.
  969.  
  970.      V
  971.           Rare: [book].
  972.  
  973.      []
  974.           Common: left/right square bracket; <opening/closing bracket>;
  975.           bracket/unbracket; left/right bracket.  Rare: square/unsquare;
  976.           [U turn/U turn back].
  977.  
  978.      \
  979.           Common: backslash; escape (from C/UNIX); reverse slash; slosh;
  980.           backslant; backwhack.  Rare: bash; <reverse slant>; reversed
  981.           virgule; [backslat].
  982.  
  983.      ^
  984.           Common: hat; control; uparrow; caret; <circumflex>.  Rare:
  985.           chevron; [shark (or shark-fin)]; to the (`to the power of');
  986.           fang; pointer (in Pascal).
  987.  
  988.      _
  989.           Common: <underline>; underscore; underbar; under.  Rare:
  990.           score; backarrow; skid; [flatworm].
  991.  
  992.      `
  993.           Common: backquote; left quote; left single quote; open quote;
  994.           <grave accent>; grave.  Rare: backprime; [backspark];
  995.           unapostrophe; birk; blugle; back tick; back glitch; push;
  996.           <opening single quotation mark>; quasiquote.
  997.  
  998.      {}
  999.           Common: open/close brace; left/right brace; left/right
  1000.           squiggly; left/right squiggly bracket/brace; left/right curly
  1001.           bracket/brace; <opening/closing brace>.  Rare: brace/unbrace;
  1002.           curly/uncurly; leftit/rytit; left/right squirrelly;
  1003.           [embrace/bracelet].
  1004.  
  1005.      |
  1006.           Common: bar; or; or-bar; v-bar; pipe; vertical bar.  Rare:
  1007.           <vertical line>; gozinta; thru; pipesinta (last three from
  1008.           UNIX); [spike].
  1009.  
  1010.      ~
  1011.           Common: <tilde>; squiggle; {twiddle}; not.  Rare: approx;
  1012.           wiggle; swung dash; enyay; [sqiggle (sic)].
  1013.  
  1014.    The pronunciation of `#' as `pound' is common in the U.S.
  1015.    but a bad idea; {{Commonwealth Hackish}} has its own, rather more
  1016.    apposite use of `pound sign' (confusingly, on British keyboards
  1017.    the pound graphic
  1018.    happens to replace `#'; thus Britishers sometimes
  1019.    call `#' on a U.S.-ASCII keyboard `pound', compounding the
  1020.    American error).  The U.S. usage derives from an old-fashioned
  1021.    commercial practice of using a `#' suffix to tag pound weights
  1022.    on bills of lading.  The character is usually pronounced `hash'
  1023.    outside the U.S.
  1024.  
  1025.    The `uparrow' name for circumflex and `leftarrow' name for
  1026.    underline are historical relics from archaic ASCII (the 1963
  1027.    version), which had these graphics in those character positions
  1028.    rather than the modern punctuation characters.
  1029.  
  1030.    The `swung dash' or `approximation' sign is not quite the same
  1031.    as tilde in typeset material
  1032.    but the ASCII tilde serves for both (compare {angle
  1033.    brackets}).
  1034.  
  1035.    Some other common usages cause odd overlaps.  The `#',
  1036.    `$', `>', and `&' characters, for example, are all
  1037.    pronounced "hex" in different communities because various
  1038.    assemblers use them as a prefix tag for hexadecimal constants (in
  1039.    particular, `#' in many assembler-programming cultures,
  1040.    `$' in the 6502 world, `>' at Texas Instruments, and
  1041.    `&' on the BBC Micro, Sinclair, and some Z80 machines).  See
  1042.    also {splat}.
  1043.  
  1044.    The inability of ASCII text to correctly represent any of the
  1045.    world's other major languages makes the designers' choice of 7 bits
  1046.    look more and more like a serious {misfeature} as the use of
  1047.    international networks continues to increase (see {software
  1048.    rot}).  Hardware and software from the U.S. still tends to embody
  1049.    the assumption that ASCII is the universal character set; this is a
  1050.    a major irritant to people who want to use a character set suited
  1051.    to their own languages.  Perversely, though, efforts to solve this
  1052.    problem by proliferating `national' character sets produce an
  1053.    evolutionary pressure to use a *smaller* subset common to all
  1054.    those in use.
  1055.  
  1056. :ASCII art: n. The fine art of drawing diagrams using the ASCII
  1057.    character set (mainly `|', `-', `/', `\', and
  1058.    `+').  Also known as `character graphics' or `ASCII
  1059.    graphics'; see also {boxology}.  Here is a serious example:
  1060.  
  1061.  
  1062.          o----)||(--+--|<----+   +---------o + D O
  1063.            L  )||(  |        |   |             C U
  1064.          A I  )||(  +-->|-+  |   +-\/\/-+--o -   T
  1065.          C N  )||(        |  |   |      |        P
  1066.            E  )||(  +-->|-+--)---+--)|--+-o      U
  1067.               )||(  |        |          | GND    T
  1068.          o----)||(--+--|<----+----------+     
  1069.  
  1070.             A power supply consisting of a full
  1071.             wave rectifier circuit feeding a
  1072.             capacitor input filter circuit
  1073.  
  1074.                                Figure 1.
  1075.  
  1076.    And here are some very silly examples:
  1077.  
  1078.  
  1079.        |\/\/\/|     ____/|              ___    |\_/|    ___
  1080.        |      |     \ o.O|   ACK!      /   \_  |` '|  _/   \
  1081.        |      |      =(_)=  THPHTH!   /      \/     \/      \
  1082.        | (o)(o)        U             /                       \
  1083.        C      _)  (__)                \/\/\/\  _____  /\/\/\/
  1084.        | ,___|    (oo)                       \/     \/
  1085.        |   /       \/-------\         U                  (__)
  1086.       /____\        ||     | \    /---V  `v'-            oo )
  1087.      /      \       ||---W||  *  * |--|   || |`.         |_/\
  1088.  
  1089.                                Figure 2.
  1090.  
  1091.    There is an important subgenre of humorous ASCII art that takes
  1092.    advantage of the names of the various characters to tell a
  1093.    pun-based joke.
  1094.  
  1095.      +--------------------------------------------------------+
  1096.      |      ^^^^^^^^^^^^                                      |
  1097.      | ^^^^^^^^^^^            ^^^^^^^^^                       |
  1098.      |                 ^^^^^^^^^^^^^            ^^^^^^^^^^^^^ |
  1099.      |        ^^^^^^^         B       ^^^^^^^^^               |
  1100.      |  ^^^^^^^^^          ^^^            ^^^^^^^^^^^^^^      |
  1101.      +--------------------------------------------------------+
  1102.                   " A Bee in the Carrot Patch "
  1103.  
  1104.                                Figure 3.
  1105.  
  1106.    Within humorous ASCII art, there is for some reason an entire
  1107.    flourishing subgenre of pictures of silly cows.  Four of these are
  1108.    reproduced in Figure 2; here are three more:
  1109.  
  1110.  
  1111.               (__)              (__)              (__)
  1112.               (\/)              ($$)              (**)
  1113.        /-------\/        /-------\/        /-------\/
  1114.       / | 666 ||        / |=====||        / |     ||
  1115.      *  ||----||       *  ||----||       *  ||----||
  1116.         ~~    ~~          ~~    ~~          ~~    ~~ 
  1117.      Satanic cow    This cow is a Yuppie   Cow in love
  1118.  
  1119.                                Figure 4.
  1120.  
  1121. :attoparsec: n. `atto-' is the standard SI prefix for
  1122.    multiplication by 10^(-18).  A parsec (parallax-second) is
  1123.    3.26 light-years; an attoparsec is thus 3.26 * 10^(-18) light
  1124.    years, or about 3.1 cm (thus, 1 attoparsec/{microfortnight}
  1125.    equals about 1 inch/sec).  This unit is reported to be in use
  1126.    (though probably not very seriously) among hackers in the U.K.  See
  1127.    {micro-}.
  1128.  
  1129. :autobogotiphobia: /aw'to-boh-got`*-foh'bee-*/ n. See {bogotify}.
  1130.  
  1131. :automagically: /aw-toh-maj'i-klee/ or /aw-toh-maj'i-k*l-ee/ adv.
  1132.    Automatically, but in a way that, for some reason (typically
  1133.    because it is too complicated, or too ugly, or perhaps even too
  1134.    trivial), the speaker doesn't feel like explaining to you.  See
  1135.    {magic}.  "The C-INTERCAL compiler generates C, then automagically
  1136.    invokes `cc(1)' to produce an executable."
  1137.  
  1138. :avatar: [CMU, Tektronix] n. Syn. {root}, {superuser}.  There
  1139.    are quite a few UNIX machines on which the name of the superuser
  1140.    account is `avatar' rather than `root'.  This quirk was
  1141.    originated by a CMU hacker who disliked the term `superuser',
  1142.    and was propagated through an ex-CMU hacker at Tektronix.
  1143.  
  1144. :awk: 1. n. [UNIX techspeak] An interpreted language for massaging
  1145.    text data developed by Alfred Aho, Peter Weinberger, and Brian
  1146.    Kernighan (the name is from their initials).  It is characterized
  1147.    by C-like syntax, a declaration-free approach to variable typing
  1148.    and declarations, associative arrays, and field-oriented text
  1149.    processing.  See also {Perl}.  2. n.  Editing term for an
  1150.    expression awkward to manipulate through normal {regexp}
  1151.    facilities (for example, one containing a {newline}).  3. vt. To
  1152.    process data using `awk(1)'.
  1153.  
  1154. = B =
  1155. =====
  1156.  
  1157. :back door: n. A hole in the security of a system deliberately left
  1158.    in place by designers or maintainers.  The motivation for this is
  1159.    not always sinister; some operating systems, for example, come out
  1160.    of the box with privileged accounts intended for use by field
  1161.    service technicians or the vendor's maintenance programmers.
  1162.  
  1163.    Historically, back doors have often lurked in systems longer than
  1164.    anyone expected or planned, and a few have become widely known.
  1165.    The infamous {RTM} worm of late 1988, for example, used a back door
  1166.    in the {BSD} UNIX `sendmail(8)' utility.
  1167.  
  1168.    Ken Thompson's 1983 Turing Award lecture to the ACM revealed the
  1169.    existence of a back door in early UNIX versions that may have
  1170.    qualified as the most fiendishly clever security hack of all time.
  1171.    The C compiler contained code that would recognize when the
  1172.    `login' command was being recompiled and insert some code
  1173.    recognizing a password chosen by Thompson, giving him entry to the
  1174.    system whether or not an account had been created for him.
  1175.  
  1176.    Normally such a back door could be removed by removing it from the
  1177.    source code for the compiler and recompiling the compiler.  But to
  1178.    recompile the compiler, you have to *use* the compiler --- so
  1179.    Thompson also arranged that the compiler would *recognize when
  1180.    it was compiling a version of itself*, and insert into the
  1181.    recompiled compiler the code to insert into the recompiled `login'
  1182.    the code to allow Thompson entry --- and, of course, the code to
  1183.    recognize itself and do the whole thing again the next time around!
  1184.    And having done this once, he was then able to recompile the
  1185.    compiler from the original sources, leaving his back door in place
  1186.    and active but with no trace in the sources.
  1187.  
  1188.    The talk that revealed this truly moby hack was published as
  1189.    "Reflections on Trusting Trust", `Communications of the
  1190.    ACM 27', 8 (August 1984), pp. 761--763.
  1191.  
  1192.    Syn. {trap door}; may also be called a `wormhole'.  See also
  1193.    {iron box}, {cracker}, {worm}, {logic bomb}.
  1194.  
  1195. :backbone cabal: n. A group of large-site administrators who pushed
  1196.    through the {Great Renaming} and reined in the chaos of {USENET}
  1197.    during most of the 1980s.  The cabal {mailing list} disbanded in
  1198.    late 1988 after a bitter internal catfight, but the net hardly
  1199. noticed.
  1200.  
  1201. :backbone site: n. A key USENET and email site; one that processes
  1202.    a large amount of third-party traffic, especially if it is the home
  1203.    site of any of the regional coordinators for the USENET maps.
  1204.    Notable backbone sites as of early 1991 include uunet and the
  1205.    mail machines at Rutgers University, UC Berkeley, DEC's Western
  1206.    Research Laboratories, Ohio State University, and the University of
  1207.    Texas.  Compare {rib site}, {leaf site}.
  1208.  
  1209. :backgammon:: See {bignum}, {moby}, and {pseudoprime}.
  1210.  
  1211. :background: n.,adj.,vt.  To do a task `in background' is to do
  1212.    it whenever {foreground} matters are not claiming your undivided
  1213.    attention, and `to background' something means to relegate it to
  1214.    a lower priority.  "For now, we'll just print a list of nodes and
  1215.    links; I'm working on the graph-printing problem in background."
  1216.    Note that this implies ongoing activity but at a reduced level or
  1217.    in spare time, in contrast to mainstream `back burner' (which
  1218.    connotes benign neglect until some future resumption of activity).
  1219.    Some people prefer to use the term for processing that they have
  1220.    queued up for their unconscious minds (a tack that one can often
  1221.    fruitfully take upon encountering an obstacle in creative work).
  1222.    Compare {amp off}, {slopsucker}.
  1223.  
  1224.    Technically, a task running in background is detached from the
  1225.    terminal where it was started (and often running at a lower
  1226.    priority); oppose {foreground}.  Nowadays this term is primarily
  1227.    associated with {{UNIX}}, but it appears to have been first used
  1228.    in this sense on OS/360.
  1229.  
  1230. :backspace and overstrike: interj. Whoa!  Back up.  Used to suggest
  1231.    that someone just said or did something wrong.  Common among
  1232.    APL programmers.
  1233.  
  1234. :backward combatability: /bak'w*rd k*m-bat'*-bil'*-tee/ [from
  1235.    `backward compatibility'] n. A property of hardware or software
  1236.    revisions in which previous protocols, formats, and layouts are
  1237.    discarded in favor of `new and improved' protocols, formats, and
  1238.    layouts.  Occurs usually when making the transition between major
  1239.    releases.  When the change is so drastic that the old formats are
  1240.    not retained in the new version, it is said to be `backward
  1241.    combatable'.  See {flag day}.
  1242.  
  1243. :BAD: /B-A-D/ [IBM: acronym, `Broken As Designed'] adj.  Said
  1244.    of a program that is {bogus} because of bad design and misfeatures
  1245.    rather than because of bugginess.  See {working as designed}.
  1246.  
  1247. :Bad Thing: [from the 1930 Sellar & Yeatman parody `1066 And
  1248.    All That'] n. Something that can't possibly result in improvement
  1249.    of the subject.  This term is always capitalized, as in "Replacing
  1250.    all of the 9600-baud modems with bicycle couriers would be a Bad
  1251.    Thing".  Oppose {Good Thing}.  British correspondents confirm
  1252.    that {Bad Thing} and {Good Thing} (and prob. therefore {Right
  1253.    Thing} and {Wrong Thing}) come from the book referenced in the
  1254.    etymology, which discusses rulers who were Good Kings but Bad
  1255.    Things.  This has apparently created a mainstream idiom on the
  1256.    British side of the pond.
  1257.  
  1258. :bag on the side: n. An extension to an established hack that is
  1259.    supposed to add some functionality to the original.  Usually
  1260.    derogatory, implying that the original was being overextended and
  1261.    should have been thrown away, and the new product is ugly,
  1262.    inelegant, or bloated.  Also v. phrase, `to hang a bag on the side
  1263.    [of]'.  "C++?  That's just a bag on the side of C ...." "They
  1264.    want me to hang a bag on the side of the accounting system."
  1265.  
  1266. :bagbiter: /bag'bi:t-*r/ n. 1. Something, such as a program or a
  1267.    computer, that fails to work, or works in a remarkably clumsy
  1268.    manner.  "This text editor won't let me make a file with a line
  1269.    longer than 80 characters!  What a bagbiter!"  2. A person who has
  1270.    caused you some trouble, inadvertently or otherwise, typically by
  1271.    failing to program the computer properly.  Synonyms: {loser},
  1272.    {cretin}, {chomper}.  3. adj. `bagbiting' Having the
  1273.    quality of a bagbiter.  "This bagbiting system won't let me
  1274.    compute the factorial of a negative number."  Compare {losing},
  1275.    {cretinous}, {bletcherous}, `barfucious' (under
  1276.    {barfulous}) and `chomping' (under {chomp}).  4. `bite
  1277.    the bag' vi. To fail in some manner.  "The computer keeps crashing
  1278.    every 5 minutes."  "Yes, the disk controller is really biting the
  1279.    bag."  The original loading of these terms was almost undoubtedly
  1280.    obscene, possibly referring to the scrotum, but in their current
  1281.    usage they have become almost completely sanitized.
  1282.  
  1283.    A program called Lexiphage on the old MIT AI PDP-10 would draw on
  1284.    a selected victim's bitmapped terminal the words "THE BAG" in
  1285.    ornate letters, and then a pair of jaws biting pieces of it off.
  1286.    This is the first and to date only known example of a program
  1287.    *intended* to be a bagbiter.
  1288.  
  1289. :bamf: /bamf/ 1. [from old X-Men comics] interj. Notional sound
  1290.    made by a person or object teleporting in or out of the hearer's
  1291.    vicinity.  Often used in {virtual reality} (esp. {MUD})
  1292.    electronic {fora} when a character wishes to make a dramatic
  1293.    entrance or exit.  2. The sound of magical transformation, used in
  1294.    virtual reality {fora} like sense 1.  3. [from `Don
  1295.    Washington's Survival Guide'] n. Acronym for `Bad-Ass Mother
  1296.    Fucker', used to refer to one of the handful of nastiest monsters
  1297.    on an LPMUD or other similar MUD.
  1298.  
  1299. :banana label: n. The labels often used on the sides of {macrotape}
  1300.    reels, so called because they are shaped roughly like blunt-ended
  1301.    bananas.  This term, like macrotapes themselves, is still current
  1302.    but visibly headed for obsolescence.
  1303.  
  1304. :banana problem: n. [from the story of the little girl who said "I
  1305.    know how to spell `banana', but I don't know when to stop"].  Not
  1306.    knowing where or when to bring a production to a close (compare
  1307.    {fencepost error}).  One may say `there is a banana problem' of an
  1308.    algorithm with poorly defined or incorrect termination conditions,
  1309.    or in discussing the evolution of a design that may be succumbing
  1310.    to featuritis (see also {creeping elegance}, {creeping
  1311.    featuritis}).  See item 176 under {HAKMEM}, which describes a
  1312.    banana problem in a {Dissociated Press} implementation.  Also,
  1313.    see {one-banana problem} for a superficially similar but
  1314.    unrelated usage.
  1315.  
  1316. :bandwidth: n. 1. Used by hackers in a generalization of its
  1317.    technical meaning as the volume of information per unit time that a
  1318.    computer, person, or transmission medium can handle.  "Those are
  1319.    amazing graphics, but I missed some of the detail --- not enough
  1320.    bandwidth, I guess."  Compare {low-bandwidth}.  2. Attention
  1321.    span.  3. On {USENET}, a measure of network capacity that is
  1322.    often wasted by people complaining about how items posted by others
  1323.    are a waste of bandwidth.
  1324.  
  1325. :bang: 1. n. Common spoken name for `!' (ASCII 0100001),
  1326.    especially when used in pronouncing a {bang path} in spoken
  1327.    hackish.  In {elder days} this was considered a CMUish usage,
  1328.    with MIT and Stanford hackers preferring {excl} or {shriek};
  1329.    but the spread of UNIX has carried `bang' with it (esp. via the
  1330.    term {bang path}) and it is now certainly the most common spoken
  1331.    name for `!'.  Note that it is used exclusively for
  1332.    non-emphatic written `!'; one would not say "Congratulations
  1333.    bang" (except possibly for humorous purposes), but if one wanted
  1334.    to specify the exact characters `foo!' one would speak "Eff oh oh
  1335.    bang".  See {shriek}, {{ASCII}}.  2. interj. An exclamation
  1336.    signifying roughly "I have achieved enlightenment!", or "The
  1337.    dynamite has cleared out my brain!"  Often used to acknowledge
  1338.    that one has perpetrated a {thinko} immediately after one has
  1339.    been called on it.
  1340.  
  1341. :bang on: vt. To stress-test a piece of hardware or software: "I
  1342.    banged on the new version of the simulator all day yesterday and it
  1343.    didn't crash once.  I guess it is ready for release."  The term
  1344.    {pound on} is synonymous.
  1345.  
  1346. :bang path: n. An old-style UUCP electronic-mail address specifying
  1347.    hops to get from some assumed-reachable location to the addressee,
  1348.    so called because each {hop} is signified by a {bang} sign.
  1349.    Thus, for example, the path ...!bigsite!foovax!barbox!me
  1350.    directs people to route their mail to machine bigsite (presumably
  1351.    a well-known location accessible to everybody) and from there
  1352.    through the machine foovax to the account of user me on
  1353.    barbox.
  1354.  
  1355.    In the bad old days of not so long ago, before autorouting mailers
  1356.    became commonplace, people often published compound bang addresses
  1357.    using the { } convention (see {glob}) to give paths from
  1358.    *several* big machines, in the hopes that one's correspondent
  1359.    might be able to get mail to one of them reliably (example:
  1360.    ...!{seismo, ut-sally, ihnp4}!rice!beta!gamma!me).  Bang paths
  1361.    of 8 to 10 hops were not uncommon in 1981.  Late-night dial-up
  1362.    UUCP links would cause week-long transmission times.  Bang paths
  1363.    were often selected by both transmission time and reliability, as
  1364.    messages would often get lost.  See {{Internet address}},
  1365.    {network, the}, and {sitename}.
  1366.  
  1367. :banner: n. 1. The title page added to printouts by most print
  1368.    spoolers (see {spool}).  Typically includes user or account ID
  1369.    information in very large character-graphics capitals.  Also called
  1370.    a `burst page', because it indicates where to burst (tear apart)
  1371.    fanfold paper to separate one user's printout from the next.  2. A
  1372.    similar printout generated (typically on multiple pages of fan-fold
  1373.    paper) from user-specified text, e.g., by a program such as UNIX's
  1374.    `banner({1,6})'.  3. On interactive software, a first screen
  1375.    containing a logo and/or author credits and/or a copyright notice.
  1376.  
  1377. :bar: /bar/ n. 1. The second {metasyntactic variable}, after {foo}
  1378.    and before {baz}.  "Suppose we have two functions: FOO and BAR.
  1379.    FOO calls BAR...."  2. Often appended to {foo} to produce
  1380.    {foobar}.
  1381.  
  1382. :bare metal: n. 1. New computer hardware, unadorned with such
  1383.    snares and delusions as an {operating system}, an {HLL}, or
  1384.    even assembler.  Commonly used in the phrase `programming on the
  1385.    bare metal', which refers to the arduous work of {bit bashing}
  1386.    needed to create these basic tools for a new machine.  Real
  1387.    bare-metal programming involves things like building boot proms and
  1388.    BIOS chips, implementing basic monitors used to test device
  1389.    drivers, and writing the assemblers that will be used to write the
  1390.    compiler back ends that will give the new machine a real
  1391.    development environment.  2. `Programming on the bare metal' is
  1392.    also used to describe a style of {hand-hacking} that relies on
  1393.    bit-level peculiarities of a particular hardware design, esp.
  1394.    tricks for speed and space optimization that rely on crocks such as
  1395.    overlapping instructions (or, as in the famous case described in
  1396.    {The Story of Mel, a Real Programmer} (in {appendix A}),
  1397.    interleaving of opcodes on a magnetic drum to minimize fetch delays
  1398.    due to the device's rotational latency).  This sort of thing has
  1399.    become less common as the relative costs of programming time and
  1400.    machine resources have changed, but is still found in heavily
  1401.    constrained environments such as industrial embedded systems.  See
  1402.    {real programmer}.
  1403.  
  1404.    In the world of personal computing, bare metal programming
  1405.    (especially in sense 1 but sometimes also in sense 2) is often
  1406.    considered a {Good Thing}, or at least a necessary thing
  1407.    (because these machines have often been sufficiently slow and
  1408.    poorly designed to make it necessary; see {ill-behaved}).
  1409.    There, the term usually refers to bypassing the BIOS or OS
  1410.    interface and writing the application to directly access device
  1411.    registers and machine addresses.  "To get 19.2 kilobaud on the
  1412.    serial port, you need to get down to the bare metal."  People who
  1413.    can do this sort of thing are held in high regard.
  1414.  
  1415. :barf: /barf/ [from mainstream slang meaning `vomit']
  1416.    1. interj.  Term of disgust.  This is the closest hackish
  1417.    equivalent of the Val\-speak "gag me with a spoon". (Like, euwww!)
  1418.    See {bletch}.  2. vi. To say "Barf!" or emit some similar
  1419.    expression of disgust.  "I showed him my latest hack and he
  1420.    barfed" means only that he complained about it, not that he
  1421.    literally vomited.  3. vi. To fail to work because of unacceptable
  1422.    input.  May mean to give an error message.  Examples: "The
  1423.    division operation barfs if you try to divide by 0."  (That is,
  1424.    the division operation checks for an attempt to divide by zero, and
  1425.    if one is encountered it causes the operation to fail in some
  1426.    unspecified, but generally obvious, manner.) "The text editor
  1427.    barfs if you try to read in a new file before writing out the old
  1428.    one."  See {choke}, {gag}.  In Commonwealth hackish,
  1429.    `barf' is generally replaced by `puke' or `vom'.  {barf}
  1430.    is sometimes also used as a {metasyntactic variable}, like {foo} or
  1431.    {bar}.
  1432.  
  1433. :barfmail: n. Multiple {bounce message}s accumulating to the
  1434.    level of serious annoyance, or worse.  The sort of thing that
  1435.    happens when an inter-network mail gateway goes down or
  1436.    wonky.
  1437.  
  1438. :barfulation: /bar`fyoo-lay'sh*n/ interj. Variation of {barf}
  1439.    used around the Stanford area.  An exclamation, expressing disgust.
  1440.    On seeing some particularly bad code one might exclaim,
  1441.    "Barfulation!  Who wrote this, Quux?"
  1442.  
  1443. :barfulous: /bar'fyoo-l*s/ adj. (alt. `barfucious',
  1444.    /bar-fyoo-sh*s/) Said of something that would make anyone barf,
  1445.    if only for esthetic reasons.
  1446.  
  1447. :barney: n. In Commonwealth hackish, `barney' is to {fred}
  1448.    (sense #1) as {bar} is to {foo}.  That is, people who
  1449.    commonly use `fred' as their first metasyntactic variable will
  1450.    often use `barney' second.  The reference is, of course, to Fred
  1451.    Flintstone and Barney Rubble in old Hanna-Barbera cartoons.
  1452.  
  1453. :baroque: adj. Feature-encrusted; complex; gaudy; verging on
  1454.    excessive.  Said of hardware or (esp.) software designs, this has
  1455.    many of the connotations of {elephantine} or {monstrosity} but is
  1456.    less extreme and not pejorative in itself.  "Metafont even has 
  1457.    features to introduce random variations to its letterform output.
  1458.    Now *that* is baroque!"  See also {rococo}.
  1459.  
  1460. :BartleMUD: /bar'tl-muhd/ n. Any of the MUDs derived from the
  1461.    original MUD game by Richard Bartle and Roy Trubshaw (see
  1462.    {MUD}).  BartleMUDs are noted for their (usually slightly
  1463.    offbeat) humor, dry but friendly syntax, and lack of adjectives in
  1464.    object descriptions, so a player is likely to come across
  1465.    `brand172', for instance (see {brand brand brand}).  Bartle has
  1466.    taken a bad rap in some MUDding circles for supposedly originating
  1467.    this term, but (like the story that MUD is a trademark) this
  1468.    appears to be a myth; he uses `MUD1'.
  1469.  
  1470. :BASIC: n. A programming language, originally designed for
  1471.    Dartmouth's experimental timesharing system in the early 1960s,
  1472.    which has since become the leading cause of brain-damage in
  1473.    proto-hackers.  This is another case (like {Pascal}) of the bad
  1474.    things that happen when a language deliberately designed as an
  1475.    educational toy gets taken too seriously.  A novice can write short
  1476.    BASIC programs (on the order of 10--20 lines) very easily; writing
  1477.    anything longer is (a) very painful, and (b) encourages bad habits
  1478.    that will bite him/her later if he/she tries to hack in a real
  1479.    language.  This wouldn't be so bad if historical accidents hadn't
  1480.    made BASIC so common on low-end micros.  As it is, it ruins
  1481.    thousands of potential wizards a year.
  1482.  
  1483. :batch: adj. 1. Non-interactive.  Hackers use this somewhat more
  1484.    loosely than the traditional technical definitions justify; in
  1485.    particular, switches on a normally interactive program that prepare
  1486.    it to receive non-interactive command input are often referred to
  1487.    as `batch mode' switches.  A `batch file' is a series of
  1488.    instructions written to be handed to an interactive program running
  1489.    in batch mode.  2. Performance of dreary tasks all at one sitting.
  1490.    "I finally sat down in batch mode and wrote out checks for all
  1491.    those bills; I guess they'll turn the electricity back on next
  1492.    week..." 3. Accumulation of a number of small tasks that can be
  1493.    lumped together for greater efficiency.  "I'm batching up those
  1494.    letters to send sometime" "I'm batching up bottles to take to the
  1495.    recycling center."
  1496.  
  1497. :bathtub curve: n. Common term for the curve (resembling an
  1498.    end-to-end section of one of those claw-footed antique bathtubs)
  1499.    that describes the expected failure rate of electronics with time:
  1500.    initially high, dropping to near 0 for most of the system's
  1501.    lifetime, then rising again as it `tires out'.  See also {burn-in
  1502.    period}, {infant mortality}.
  1503.  
  1504. :baud: /bawd/ [simplified from its technical meaning] n. Bits per
  1505.    second.  Hence kilobaud or Kbaud, thousands of bits per second.
  1506.    The technical meaning is `level transitions per second'; this
  1507.    coincides with bps only for two-level modulation with no framing or
  1508.    stop bits.  Most hackers are aware of these nuances but blithely
  1509.    ignore them.
  1510.  
  1511. :baud barf: /bawd barf/ n. The garbage one gets on the monitor
  1512.    when using a modem connection with some protocol setting (esp.
  1513.    line speed) incorrect, or when someone picks up a voice extension
  1514.    on the same line, or when really bad line noise disrupts the
  1515.    connection.  Baud barf is not completely {random}, by the way;
  1516.    hackers with a lot of serial-line experience can usually tell
  1517.    whether the device at the other end is expecting a higher or lower
  1518.    speed than the terminal is set to.  *Really* experienced ones
  1519.    can identify particular speeds.
  1520.  
  1521. :baz: /baz/ n. 1. The third {metasyntactic variable} "Suppose we
  1522.    have three functions: FOO, BAR, and BAZ.  FOO calls BAR, which
  1523.    calls BAZ...." (See also {fum}) 2. interj. A term of mild
  1524.    annoyance.  In this usage the term is often drawn out for 2 or 3
  1525.    seconds, producing an effect not unlike the bleating of a sheep;
  1526.    /baaaaaaz/.  3. Occasionally appended to {foo} to produce
  1527.    `foobaz'.
  1528.  
  1529.    Earlier versions of this lexicon derived `baz' as a Stanford
  1530.    corruption of {bar}.  However, Pete Samson (compiler of the
  1531.    {TMRC} lexicon) reports it was already current when he joined TMRC
  1532.    in 1958.  He says "It came from `Pogo'.  Albert the Alligator,
  1533.    when vexed or outraged, would shout `Bazz Fazz!' or `Rowrbazzle!'
  1534.    The club layout was said to model the (mythical) New England
  1535.    counties of Rowrfolk and Bassex (Rowrbazzle mingled with
  1536.    (Norfolk/Suffolk/Middlesex/Essex)."
  1537.  
  1538. :bboard: /bee'bord/ [contraction of `bulletin board'] n.
  1539.    1. Any electronic bulletin board; esp. used of {BBS} systems
  1540.    running on personal micros, less frequently of a USENET
  1541.    {newsgroup} (in fact, use of the term for a newsgroup generally
  1542.    marks one either as a {newbie} fresh in from the BBS world or as
  1543.    a real old-timer predating USENET).  2. At CMU and other colleges
  1544.    with similar facilities, refers to campus-wide electronic bulletin
  1545.    boards.  3. The term `physical bboard' is sometimes used to
  1546.    refer to a old-fashioned, non-electronic cork memo board.  At CMU,
  1547.    it refers to a particular one outside the CS Lounge.
  1548.  
  1549.    In either of senses 1 or 2, the term is usually prefixed by the
  1550.    name of the intended board (`the Moonlight Casino bboard' or
  1551.    `market bboard'); however, if the context is clear, the better-read
  1552.    bboards may be referred to by name alone, as in (at CMU) "Don't
  1553.    post for-sale ads on general".
  1554.  
  1555. :BBS: /B-B-S/ [abbreviation, `Bulletin Board System'] n. An electronic
  1556.    bulletin board system; that is, a message database where people can
  1557.    log in and leave broadcast messages for others grouped (typically)
  1558.    into {topic group}s.  Thousands of local BBS systems are in
  1559.    operation throughout the U.S., typically run by amateurs for fun
  1560.    out of their homes on MS-DOS boxes with a single modem line each.
  1561.    Fans of USENET and Internet or the big commercial timesharing
  1562.    bboards such as CompuServe and GEnie tend to consider local BBSes
  1563.    the low-rent district of the hacker culture, but they serve a
  1564.    valuable function by knitting together lots of hackers and users in
  1565.    the personal-micro world who would otherwise be unable to exchange
  1566.    code at all.
  1567.  
  1568. :beam: [from Star Trek Classic's "Beam me up, Scotty!"] vt. To
  1569.    transfer {softcopy} of a file electronically; most often in
  1570.    combining forms such as `beam me a copy' or `beam that over to
  1571.    his site'.  Compare {blast}, {snarf}, {BLT}.
  1572.  
  1573. :beanie key: [Mac users] n. See {command key}.
  1574.  
  1575. :beep: n.,v. Syn. {feep}.  This term seems to be preferred among micro
  1576.    hobbyists.
  1577.  
  1578. :beige toaster: n. A Macintosh. See {toaster}; compare
  1579.    {Macintrash}, {maggotbox}.
  1580.  
  1581. :bells and whistles: [by analogy with the toyboxes on theater
  1582.    organs] n. Features added to a program or system to make it more
  1583.    {flavorful} from a hacker's point of view, without necessarily
  1584.    adding to its utility for its primary function.  Distinguished from
  1585.    {chrome}, which is intended to attract users.  "Now that we've
  1586.    got the basic program working, let's go back and add some bells and
  1587.    whistles."  No one seems to know what distinguishes a bell from a
  1588.    whistle.
  1589.  
  1590. :bells, whistles, and gongs: n. A standard elaborated form of
  1591.    {bells and whistles}; typically said with a pronounced and ironic
  1592.    accent on the `gongs'.
  1593.  
  1594. :benchmark: [techspeak] n. An inaccurate measure of computer
  1595.    performance.  "In the computer industry, there are three kinds of
  1596.    lies: lies, damn lies, and benchmarks."  Well-known ones include
  1597.    Whetstone, Dhrystone, Rhealstone (see {h}), the Gabriel LISP
  1598.    benchmarks (see {gabriel}), the SPECmark suite, and LINPACK.  See
  1599.    also {machoflops}, {MIPS}.
  1600.  
  1601. :Berkeley Quality Software: adj. (often abbreviated `BQS') Term used
  1602.    in a pejorative sense to refer to software that was apparently
  1603.    created by rather spaced-out hackers late at night to solve some
  1604.    unique problem.  It usually has nonexistent, incomplete, or
  1605.    incorrect documentation, has been tested on at least two examples,
  1606.    and core dumps when anyone else attempts to use it.  This term was
  1607.    frequently applied to early versions of the `dbx(1)' debugger.
  1608.    See also {Berzerkeley}.
  1609.  
  1610. :berklix: /berk'liks/ n.,adj. [contraction of `Berkeley UNIX'] See
  1611.    {BSD}.  Not used at Berkeley itself.  May be more common among
  1612.    {suit}s attempting to sound like cognoscenti than among hackers,
  1613.    who usually just say `BSD'.
  1614.  
  1615. :berserking: vi. A {MUD} term meaning to gain points *only*
  1616.    by killing other players and mobiles (non-player characters).
  1617.    Hence, a Berserker-Wizard is a player character that has achieved
  1618.    enough points to become a wizard, but only by killing other
  1619.    characters.  Berserking is sometimes frowned upon because of its
  1620.    inherently antisocial nature, but some MUDs have a `berserker
  1621.    mode' in which a player becomes *permanently* berserk, can
  1622.    never flee from a fight, cannot use magic, gets no score for
  1623.    treasure, but does get double kill points.  "Berserker
  1624.    wizards can seriously damage your elf!"
  1625.  
  1626. :Berzerkeley: /b*r-zer'klee/ [from `berserk', via the name of a
  1627.    now-deceased record label] n. Humorous distortion of `Berkeley'
  1628.    used esp. to refer to the practices or products of the
  1629.    {BSD} UNIX hackers.  See {software bloat}, {Missed'em-five},
  1630.    {Berkeley Quality Software}.
  1631.  
  1632.    Mainstream use of this term in reference to the cultural and
  1633.    political peculiarities of UC Berkeley as a whole has been reported
  1634.    from as far back as the 1960s.
  1635.  
  1636. :beta: /bay't*/, /be't*/ or (Commonwealth) /bee't*/ n. 1. In
  1637.    the {Real World}, software often goes through two stages of
  1638.    testing: Alpha (in-house) and Beta (out-house?).  Software is said
  1639.    to be `in beta'.  2. Anything that is new and experimental is in
  1640.    beta. "His girlfriend is in beta" means that he is still testing
  1641.    for compatibility and reserving judgment.  3. Beta software is
  1642.    notoriously buggy, so `in beta' connotes flakiness.
  1643.  
  1644.    Historical note: More formally, to beta-test is to test a
  1645.    pre-release (potentially unreliable) version of a piece of software
  1646.    by making it available to selected customers and users.  This term
  1647.    derives from early 1960s terminology for product cycle checkpoints,
  1648.    first used at IBM but later standard throughout the industry.
  1649.    `Alpha Test' was the unit, module, or component test phase; `Beta
  1650.    Test' was initial system test.  These themselves came from earlier
  1651.    A- and B-tests for hardware.  The A-test was a feasibility and
  1652.    manufacturability evaluation done before any commitment to design
  1653.    and development.  The B-test was a demonstration that the
  1654.    engineering model functioned as specified.  The C-test
  1655.    (corresponding to today's beta) was the B-test performed on early
  1656.    samples of the production design.
  1657.  
  1658. :BFI: /B-F-I/ n. See {brute force and ignorance}.  Also
  1659.    encountered in the variants `BFMI', `brute force and
  1660.    *massive* ignorance' and `BFBI' `brute force and bloody
  1661.    ignorance'.
  1662.  
  1663. :bible: n. 1. One of a small number of fundamental source books
  1664.    such as {Knuth} and {K&R}.  2. The most detailed and
  1665.    authoritative reference for a particular language, operating
  1666.    system, or other complex software system.
  1667.  
  1668. :BiCapitalization: n. The act said to have been performed on
  1669.    trademarks (such as NeXT, {NeWS}, VisiCalc, FrameMaker,
  1670.    TK!solver, EasyWriter) that have been raised above the ruck of
  1671.    common coinage by nonstandard capitalization.  Too many
  1672.    {marketroid} types think this sort of thing is really cute, even
  1673.    the 2,317th time they do it.  Compare {studlycaps}.
  1674.  
  1675. :BIFF: /bif/ [USENET] n. The most famous {pseudo}, and the
  1676.    prototypical {newbie}.  Articles from BIFF are characterized by
  1677.    all uppercase letters sprinkled liberally with bangs, typos,
  1678.    `cute' misspellings (EVRY BUDY LUVS GOOD OLD BIFF CUZ HE"S A
  1679.    K00L DOOD AN HE RITES REEL AWESUM THINGZ IN CAPITULL LETTRS LIKE
  1680.    THIS!!!), use (and often misuse) of fragments of {talk mode}
  1681.    abbreviations, a long {sig block} (sometimes even a {doubled
  1682.    sig}), and unbounded na"ivet'e.  BIFF posts articles using his
  1683.    elder brother's VIC-20.  BIFF's location is a mystery, as his
  1684.    articles appear to come from a variety of sites.  However,
  1685.    {BITNET} seems to be the most frequent origin.  The theory that
  1686.    BIFF is a denizen of BITNET is supported by BIFF's (unfortunately
  1687.    invalid) electronic mail address: BIFF@BIT.NET.
  1688.  
  1689. :biff: /bif/ vt. To notify someone of incoming mail.  From the
  1690.    BSD utility `biff(1)', which was in turn named after a
  1691.    friendly golden Labrador who used to chase frisbees in the halls at
  1692.    UCB while 4.2BSD was in development (it had a well-known habit of
  1693.    barking whenever the mailman came).  No relation to
  1694.    {BIFF}.
  1695.  
  1696. :Big Gray Wall: n. What faces a {VMS} user searching for
  1697.    documentation.  A full VMS kit comes on a pallet, the documentation
  1698.    taking up around 15 feet of shelf space before the addition of
  1699.    layered products such as compilers, databases, multivendor
  1700.    networking, and programming tools.  Recent (since VMS version 5)
  1701.    DEC documentation comes with gray binders; under VMS version 4 the
  1702.    binders were orange (`big orange wall'), and under version 3 they
  1703.    were blue.  See {VMS}.
  1704.  
  1705. :big iron: n. Large, expensive, ultra-fast computers.  Used generally
  1706.    of {number-crunching} supercomputers such as Crays, but can include
  1707.    more conventional big commercial IBMish mainframes.  Term of
  1708.    approval; compare {heavy metal}, oppose {dinosaur}.
  1709.  
  1710. :Big Red Switch: [IBM] n. The power switch on a computer, esp. the
  1711.    `Emergency Pull' switch on an IBM {mainframe} or the power switch
  1712.    on an IBM PC where it really is large and red.  "This !@%$%
  1713.    {bitty box} is hung again; time to hit the Big Red Switch."
  1714.    Sources at IBM report that, in tune with the company's passion for
  1715.    {TLA}s, this is often abbreviated as `BRS' (this has also
  1716.    become established on FidoNet and in the PC {clone} world).  It
  1717.    is alleged that the emergency pull switch on an IBM 360/91 actually
  1718.    fired a non-conducting bolt into the main power feed; the BRSes on
  1719.    more recent machines physically drop a block into place so that
  1720.    they can't be pushed back in.  People get fired for pulling them,
  1721.    especially inappropriately (see also {molly-guard}).  Compare
  1722.    {power cycle}, {three-finger salute}, {120 reset}.
  1723.  
  1724. :Big Room, the: n. The extremely large room with the blue ceiling
  1725.    and intensely bright light (during the day) or black ceiling with
  1726.    lots of tiny night-lights (during the night) found outside all
  1727.    computer installations.  "He can't come to the phone right now,
  1728.    he's somewhere out in the Big Room."
  1729.  
  1730. :big win: n. Serendipity.  "Yes, those two physicists discovered
  1731.    high-temperature superconductivity in a batch of ceramic that had
  1732.    been prepared incorrectly according to their experimental schedule.
  1733.    Small mistake; big win!" See {win big}.
  1734.  
  1735. :big-endian: [From Swift's `Gulliver's Travels' via the famous
  1736.    paper `On Holy Wars and a Plea for Peace' by Danny Cohen,
  1737.    USC/ISI IEN 137, dated April 1, 1980] adj. 1. Describes a computer
  1738.    architecture in which, within a given multi-byte numeric
  1739.    representation, the most significant byte has the lowest address
  1740.    (the word is stored `big-end-first').  Most processors,
  1741.    including the IBM 370 family, the {PDP-10}, the Motorola
  1742.    microprocessor families, and most of the various RISC designs
  1743.    current in mid-1991, are big-endian.  See {little-endian},
  1744.    {middle-endian}, {NUXI problem}.  2. An {{Internet address}}
  1745.    the wrong way round.  Most of the world follows the Internet
  1746.    standard and writes email addresses starting with the name of the
  1747.    computer and ending up with the name of the country.  In the U.K.
  1748.    the Joint Networking Team had decided to do it the other way round
  1749.    before the Internet domain standard was established; e.g.,
  1750.    me@uk.ac.wigan.cs.  Most gateway sites have {ad-hockery} in
  1751.    their mailers to handle this, but can still be confused.  In
  1752.    particular, the address above could be in the U.K. (domain uk)
  1753.    or Czechoslovakia (domain cs).
  1754.  
  1755. :bignum: /big'nuhm/ [orig. from MIT MacLISP] n. 1. [techspeak] A
  1756.    multiple-precision computer representation for very large integers.
  1757.    More generally, any very large number.  "Have you ever looked at
  1758.    the United States Budget?  There's bignums for you!"
  1759.    2. [Stanford] In backgammon, large numbers on the dice are called
  1760.    `bignums', especially a roll of double fives or double sixes
  1761.    (compare {moby}, sense 4).  See also {El Camino Bignum}.
  1762.  
  1763.    Sense 1 may require some explanation.  Most computer languages
  1764.    provide a kind of data called `integer', but such computer
  1765.    integers are usually very limited in size; usually they must be
  1766.    smaller than than 2^(31) (2,147,483,648) or (on a losing
  1767.    {bitty box}) 2^(15) (32,768).  If you want to work with
  1768.    numbers larger than that, you have to use floating-point numbers,
  1769.    which are usually accurate to only six or seven decimal places.
  1770.    Computer languages that provide bignums can perform exact
  1771.    calculations on very large numbers, such as 1000!  (the factorial
  1772.    of 1000, which is 1000 times 999 times 998 times ... times 2
  1773.    times 1).  For example, this value for 1000!  was computed by the
  1774.    MacLISP system using bignums:
  1775.  
  1776.      40238726007709377354370243392300398571937486421071
  1777.      46325437999104299385123986290205920442084869694048
  1778.      00479988610197196058631666872994808558901323829669
  1779.      94459099742450408707375991882362772718873251977950
  1780.      59509952761208749754624970436014182780946464962910
  1781.      56393887437886487337119181045825783647849977012476
  1782.      63288983595573543251318532395846307555740911426241
  1783.      74743493475534286465766116677973966688202912073791
  1784.      43853719588249808126867838374559731746136085379534
  1785.      52422158659320192809087829730843139284440328123155
  1786.      86110369768013573042161687476096758713483120254785
  1787.      89320767169132448426236131412508780208000261683151
  1788.      02734182797770478463586817016436502415369139828126
  1789.      48102130927612448963599287051149649754199093422215
  1790.      66832572080821333186116811553615836546984046708975
  1791.      60290095053761647584772842188967964624494516076535
  1792.      34081989013854424879849599533191017233555566021394
  1793.      50399736280750137837615307127761926849034352625200
  1794.      01588853514733161170210396817592151090778801939317
  1795.      81141945452572238655414610628921879602238389714760
  1796.      88506276862967146674697562911234082439208160153780
  1797.      88989396451826324367161676217916890977991190375403
  1798.      12746222899880051954444142820121873617459926429565
  1799.      81746628302955570299024324153181617210465832036786
  1800.      90611726015878352075151628422554026517048330422614
  1801.      39742869330616908979684825901254583271682264580665
  1802.      26769958652682272807075781391858178889652208164348
  1803.      34482599326604336766017699961283186078838615027946
  1804.      59551311565520360939881806121385586003014356945272
  1805.      24206344631797460594682573103790084024432438465657
  1806.      24501440282188525247093519062092902313649327349756
  1807.      55139587205596542287497740114133469627154228458623
  1808.      77387538230483865688976461927383814900140767310446
  1809.      64025989949022222176590433990188601856652648506179
  1810.      97023561938970178600408118897299183110211712298459
  1811.      01641921068884387121855646124960798722908519296819
  1812.      37238864261483965738229112312502418664935314397013
  1813.      74285319266498753372189406942814341185201580141233
  1814.      44828015051399694290153483077644569099073152433278
  1815.      28826986460278986432113908350621709500259738986355
  1816.      42771967428222487575867657523442202075736305694988
  1817.      25087968928162753848863396909959826280956121450994
  1818.      87170124451646126037902930912088908694202851064018
  1819.      21543994571568059418727489980942547421735824010636
  1820.      77404595741785160829230135358081840096996372524230
  1821.      56085590370062427124341690900415369010593398383577
  1822.      79394109700277534720000000000000000000000000000000
  1823.      00000000000000000000000000000000000000000000000000
  1824.      00000000000000000000000000000000000000000000000000
  1825.      00000000000000000000000000000000000000000000000000
  1826.      00000000000000000000000000000000000000000000000000
  1827.      000000000000000000.
  1828.  
  1829. :bigot: n. A person who is religiously attached to a particular
  1830.    computer, language, operating system, editor, or other tool (see
  1831.    {religious issues}).  Usually found with a specifier; thus,
  1832.    `cray bigot', `ITS bigot', `APL bigot', `VMS bigot',
  1833.    `Berkeley bigot'.  True bigots can be distinguished from mere
  1834.    partisans or zealots by the fact that they refuse to learn
  1835.    alternatives even when the march of time and/or technology is
  1836.    threatening to obsolete the favored tool.  It is said "You can
  1837.    tell a bigot, but you can't tell him much."  Compare
  1838.    {weenie}.
  1839.  
  1840. :bit: [from the mainstream meaning and `Binary digIT'] n.
  1841.    1. [techspeak] The unit of information; the amount of information
  1842.    obtained by asking a yes-or-no question for which the two outcomes
  1843.    are equally probable.  2. [techspeak] A computational quantity that
  1844.    can take on one of two values, such as true and false or 0 and 1.
  1845.    3. A mental flag: a reminder that something should be done
  1846.    eventually.  "I have a bit set for you."  (I haven't seen you for
  1847.    a while, and I'm supposed to tell or ask you something.)  4. More
  1848.    generally, a (possibly incorrect) mental state of belief.  "I have
  1849.    a bit set that says that you were the last guy to hack on EMACS."
  1850.    (Meaning "I think you were the last guy to hack on EMACS, and what
  1851.    I am about to say is predicated on this, so please stop me if this
  1852.    isn't true.")
  1853.  
  1854.    "I just need one bit from you" is a polite way of indicating that
  1855.    you intend only a short interruption for a question that can
  1856.    presumably be answered yes or no.
  1857.  
  1858.    A bit is said to be `set' if its value is true or 1, and
  1859.    `reset' or `clear' if its value is false or 0.  One
  1860.    speaks of setting and clearing bits.  To {toggle} or
  1861.    `invert' a bit is to change it, either from 0 to 1 or from
  1862.    1 to 0.  See also {flag}, {trit}, {mode bit}.
  1863.  
  1864. :bit bang: n. Transmission of data on a serial line, when
  1865.    accomplished by rapidly tweaking a single output bit at the
  1866.    appropriate times.  The technique is a simple
  1867.    loop with eight OUT and SHIFT instruction pairs for each byte.
  1868.    Input is more interesting.  And full duplex (doing input and output
  1869.    at the same time) is one way to separate the real hackers from the
  1870.    {wannabee}s.
  1871.  
  1872.    Bit bang was used on certain early models of Prime computers,
  1873.    presumably when UARTs were too expensive, and on archaic Z80 micros
  1874.    with a Zilog PIO but no SIO.  In an interesting instance of the
  1875.    {cycle of reincarnation}, this technique is now (1991) coming
  1876.    back into use on some RISC architectures because it consumes such
  1877.    an infinitesimal part of the processor that it actually makes sense
  1878.    not to have a UART.
  1879.  
  1880. :bit bashing: n. (alt. `bit diddling' or {bit twiddling}) Term
  1881.    used to describe any of several kinds of low-level programming
  1882.    characterized by manipulation of {bit}, {flag}, {nybble},
  1883.    and other smaller-than-character-sized pieces of data; these
  1884.    include low-level device control, encryption algorithms, checksum
  1885.    and error-correcting codes, hash functions, some flavors of
  1886.    graphics programming (see {bitblt}), and assembler/compiler code
  1887.    generation.  May connote either tedium or a real technical
  1888.    challenge (more usually the former).  "The command decoding for
  1889.    the new tape driver looks pretty solid but the bit-bashing for the
  1890.    control registers still has bugs."  See also {bit bang},
  1891.    {mode bit}.
  1892.  
  1893. :bit bucket: n. 1. The universal data sink (originally, the
  1894.    mythical receptacle used to catch bits when they fall off the end
  1895.    of a register during a shift instruction).  Discarded, lost, or
  1896.    destroyed data is said to have `gone to the bit bucket'.  On
  1897.    {{UNIX}}, often used for {/dev/null}.  Sometimes amplified as
  1898.    `the Great Bit Bucket in the Sky'.  2. The place where all lost
  1899.    mail and news messages eventually go.  The selection is performed
  1900.    according to {Finagle's Law}; important mail is much more likely
  1901.    to end up in the bit bucket than junk mail, which has an almost
  1902.    100% probability of getting delivered.  Routing to the bit bucket
  1903.    is automatically performed by mail-transfer agents, news systems,
  1904.    and the lower layers of the network.  3. The ideal location for all
  1905.    unwanted mail responses: "Flames about this article to the bit
  1906.    bucket."  Such a request is guaranteed to overflow one's mailbox
  1907.    with flames.  4. Excuse for all mail that has not been sent.  "I
  1908.    mailed you those figures last week; they must have ended in the bit
  1909.    bucket."  Compare {black hole}.
  1910.  
  1911.    This term is used purely in jest.  It is based on the fanciful
  1912.    notion that bits are objects that are not destroyed but only
  1913.    misplaced.  This appears to have been a mutation of an earlier term
  1914.    `bit box', about which the same legend was current; old-time
  1915.    hackers also report that trainees used to be told that when the CPU
  1916.    stored bits into memory it was actually pulling them `out of the
  1917.    bit box'.  See also {chad box}.
  1918.  
  1919.    Another variant of this legend has it that, as a consequence of the
  1920.    `parity preservation law', the number of 1 bits that go to the bit
  1921.    bucket must equal the number of 0 bits.  Any imbalance results in
  1922.    bits filling up the bit bucket.  A qualified computer technician
  1923.    can empty a full bit bucket as part of scheduled maintenance.
  1924.  
  1925. :bit decay: n. See {bit rot}.  People with a physics background
  1926.    tend to prefer this one for the analogy with particle decay.  See
  1927.    also {computron}, {quantum bogodynamics}.
  1928.  
  1929. :bit rot: n. Also {bit decay}.  Hypothetical disease the existence
  1930.    of which has been deduced from the observation that unused programs
  1931.    or features will often stop working after sufficient time has
  1932.    passed, even if `nothing has changed'.  The theory explains that
  1933.    bits decay as if they were radioactive.  As time passes, the
  1934.    contents of a file or the code in a program will become
  1935.    increasingly garbled.
  1936.  
  1937.    There actually are physical processes that produce such effects
  1938.    (alpha particles generated by trace radionuclides in ceramic chip
  1939.    packages, for example, can change the contents of a computer memory
  1940.    unpredictably, and various kinds of subtle media failures can
  1941.    corrupt files in mass storage), but they are quite rare (and
  1942.    computers are built with error-detecting circuitry to compensate
  1943.    for them).  The notion long favored among hackers that cosmic
  1944.    rays are among the causes of such events turns out to be a myth;
  1945.    see the {cosmic rays} entry for details.
  1946.  
  1947.    The term {software rot} is almost synonymous.  Software rot is
  1948.    the effect, bit rot the notional cause.
  1949.  
  1950. :bit twiddling: n. 1. (pejorative) An exercise in tuning (see
  1951.    {tune}) in which incredible amounts of time and effort go to
  1952.    produce little noticeable improvement, often with the result that
  1953.    the code has become incomprehensible.  2. Aimless small
  1954.    modification to a program, esp. for some pointless goal.
  1955.    3. Approx. syn. for {bit bashing}; esp. used for the act of
  1956.    frobbing the device control register of a peripheral in an attempt
  1957.    to get it back to a known state.
  1958.  
  1959. :bit-paired keyboard: n. obs. (alt. `bit-shift keyboard') A
  1960.    non-standard keyboard layout that seems to have originated with the
  1961.    Teletype ASR-33 and remained common for several years on early
  1962.    computer equipment.  The ASR-33 was a mechanical device (see
  1963.    {EOU}), so the only way to generate the character codes from
  1964.    keystrokes was by some physical linkage.  The design of the ASR-33
  1965.    assigned each character key a basic pattern that could be modified
  1966.    by flipping bits if the SHIFT or the CTRL key was pressed.  In
  1967.    order to avoid making the thing more of a Rube Goldberg kluge than
  1968.    it already was, the design had to group characters that shared the
  1969.    same basic bit pattern on one key.
  1970.  
  1971.    Looking at the ASCII chart, we find:
  1972.  
  1973.      high  low bits
  1974.      bits  0000 0001 0010 0011 0100 0101 0110 0111 1000 1001
  1975.       010        !    "    #    $    %    &    '    (    )
  1976.       011   0    1    2    3    4    5    6    7    8    9
  1977.  
  1978.    This is why the characters !"#$%&'() appear where they do on a
  1979.    Teletype (thankfully, they didn't use shift-0 for space).  This was
  1980.    *not* the weirdest variant of the {QWERTY} layout widely
  1981.    seen, by the way; that prize should probably go to one of several
  1982.    (differing) arrangements on IBM's even clunkier 026 and 029 card
  1983.    punches.
  1984.  
  1985.    When electronic terminals became popular, in the early 1970s, there
  1986.    was no agreement in the industry over how the keyboards should be
  1987.    laid out.  Some vendors opted to emulate the Teletype keyboard,
  1988.    while others used the flexibility of electronic circuitry to make
  1989.    their product look like an office typewriter.  These alternatives
  1990.    became known as `bit-paired' and `typewriter-paired' keyboards.  To
  1991.    a hacker, the bit-paired keyboard seemed far more logical --- and
  1992.    because most hackers in those days had never learned to touch-type,
  1993.    there was little pressure from the pioneering users to adapt
  1994.    keyboards to the typewriter standard.
  1995.  
  1996.    The doom of the bit-paired keyboard was the large-scale
  1997.    introduction of the computer terminal into the normal office
  1998.    environment, where out-and-out technophobes were expected to use
  1999.    the equipment.  The `typewriter-paired' standard became universal,
  2000.    `bit-paired' hardware was quickly junked or relegated to dusty
  2001.    corners, and both terms passed into disuse.
  2002.  
  2003. :bitblt: /bit'blit/ n. [from {BLT}, q.v.] 1. Any of a family
  2004.    of closely related algorithms for moving and copying rectangles of
  2005.    bits between main and display memory on a bit-mapped device, or
  2006.    between two areas of either main or display memory (the requirement
  2007.    to do the {Right Thing} in the case of overlapping source and
  2008.    destination rectangles is what makes BitBlt tricky).  2. Synonym
  2009.    for {blit} or {BLT}.  Both uses are borderline techspeak.
  2010.  
  2011. :BITNET: /bit'net/ [acronym: Because It's Time NETwork] n.
  2012.    Everybody's least favorite piece of the network (see {network,
  2013.    the}).  The BITNET hosts are a collection of IBM dinosaurs and
  2014.    VAXen (the latter with lobotomized comm hardware) that communicate
  2015.    using 80-character {{EBCDIC}} card images (see {eighty-column
  2016.    mind}); thus, they tend to mangle the headers and text of
  2017.    third-party traffic from the rest of the ASCII/RFC-822 world with
  2018.    annoying regularity.  BITNET is also notorious as the apparent home
  2019.    of {BIFF}.
  2020.  
  2021. :bits: n.pl. 1. Information.  Examples: "I need some bits about file
  2022.    formats."  ("I need to know about file formats.")  Compare {core
  2023.    dump}, sense 4.  2. Machine-readable representation of a document,
  2024.    specifically as contrasted with paper:  "I have only a photocopy
  2025.    of the Jargon File; does anyone know where I can get the bits?".
  2026.    See {softcopy}, {source of all good bits} See also {bit}.
  2027.  
  2028. :bitty box: /bit'ee boks/ n. 1. A computer sufficiently small,
  2029.    primitive, or incapable as to cause a hacker acute claustrophobia
  2030.    at the thought of developing software for it.  Especially used of
  2031.    small, obsolescent, single-tasking-only personal machines such as
  2032.    the Atari 800, Osborne, Sinclair, VIC-20, TRS-80, or IBM PC.
  2033.    2. [Pejorative]  More generally, the opposite of `real computer'
  2034.    (see {Get a real computer!}).  See also {mess-dos},
  2035.    {toaster}, and {toy}.
  2036.  
  2037. :bixie: /bik'see/ n. Variant {emoticon}s used on BIX (the Byte
  2038.    Information eXchange).  The {smiley} bixie is <@_@>, apparently
  2039.    intending to represent two cartoon eyes and a mouth.  A few others
  2040.    have been reported.
  2041.  
  2042. :black art: n. A collection of arcane, unpublished, and (by
  2043.    implication) mostly ad-hoc techniques developed for a particular
  2044.    application or systems area (compare {black magic}).  VLSI design
  2045.    and compiler code optimization were (in their beginnings)
  2046.    considered classic examples of black art; as theory developed they
  2047.    became {deep magic}, and once standard textbooks had been written,
  2048.    became merely {heavy wizardry}.  The huge proliferation of formal
  2049.    and informal channels for spreading around new computer-related
  2050.    technologies during the last twenty years has made both the term
  2051.    `black art' and what it describes less common than formerly.  See
  2052.    also {voodoo programming}.
  2053.  
  2054. :black hole: n. When a piece of email or netnews disappears
  2055.    mysteriously between its origin and destination sites (that is,
  2056.    without returning a {bounce message}) it is commonly said to have
  2057.    `fallen into a black hole'.  "I think there's a black hole at
  2058.    foovax!" conveys suspicion that site foovax has been dropping
  2059.    a lot of stuff on the floor lately (see {drop on the floor}).
  2060.    The implied metaphor of email as interstellar travel is interesting
  2061.    in itself.  Compare {bit bucket}.
  2062.  
  2063. :black magic: n. A technique that works, though nobody really
  2064.    understands why.  More obscure than {voodoo programming}, which
  2065.    may be done by cookbook.  Compare also {black art}, {deep
  2066.    magic}, and {magic number} (sense 2).
  2067.  
  2068. :blargh: /blarg/ [MIT] n. The opposite of {ping}, sense 5; an
  2069.    exclamation indicating that one has absorbed or is emitting a
  2070.    quantum of unhappiness.  Less common than {ping}.
  2071.  
  2072. :blast: 1. vt.,n. Synonym for {BLT}, used esp. for large data
  2073.    sends over a network or comm line.  Opposite of {snarf}.  Usage:
  2074.    uncommon.  The variant `blat' has been reported.  2. vt.
  2075.    [HP/Apollo] Synonymous with {nuke} (sense 3).  Sometimes the
  2076.    message `Unable to kill all processes.  Blast them (y/n)?' would
  2077.    appear in the command window upon logout.
  2078.  
  2079. :blat: n. 1. Syn. {blast}, sense 1.  2. See {thud}.
  2080.  
  2081. :bletch: /blech/ [from Yiddish/German `brechen', to vomit, poss.
  2082.    via comic-strip exclamation `blech'] interj.  Term of disgust.
  2083.    Often used in "Ugh, bletch".  Compare {barf}.
  2084.  
  2085. :bletcherous: /blech'*-r*s/ adj. Disgusting in design or function;
  2086.    esthetically unappealing.  This word is seldom used of people.
  2087.    "This keyboard is bletcherous!" (Perhaps the keys don't work very
  2088.    well, or are misplaced.)  See {losing}, {cretinous},
  2089.    {bagbiter}, {bogus}, and {random}.  The term {bletcherous}
  2090.    applies to the esthetics of the thing so described; similarly for
  2091.    {cretinous}.  By contrast, something that is `losing' or
  2092.    `bagbiting' may be failing to meet objective criteria.  See also
  2093.    {bogus} and {random}, which have richer and wider shades of
  2094.    meaning than any of the above.
  2095.  
  2096. :blinkenlights: /blink'*n-li:tz/ n. Front-panel diagnostic lights
  2097.    on a computer, esp. a {dinosaur}.  Derives from the last word
  2098.    of the famous blackletter-Gothic sign in mangled pseudo-German that
  2099.    once graced about half the computer rooms in the English-speaking
  2100.    world.  One version ran in its entirety as follows:
  2101.  
  2102.                    ACHTUNG!  ALLES LOOKENSPEEPERS!  Das
  2103.      computermachine ist nicht fuer gefingerpoken und mittengrabben.
  2104.      Ist easy schnappen der springenwerk, blowenfusen und poppencorken
  2105.      mit spitzensparken.  Ist nicht fuer gewerken bei das dumpkopfen.
  2106.      Das rubbernecken sichtseeren keepen das cotten-pickenen hans in das
  2107.      pockets muss; relaxen und watchen das blinkenlichten.
  2108.  
  2109.  
  2110.    This silliness dates back at least as far as 1959 at Stanford
  2111.    University and had already gone international by the early 1960s,
  2112.    when it was reported at London University's ATLAS computing site.
  2113.    There are several variants of it in circulation, some of which
  2114.    actually do end with the word `blinkenlights'.
  2115.  
  2116.    In an amusing example of turnabout-is-fair-play, German hackers
  2117.    have developed their own versions of the blinkenlights poster in
  2118.    fractured English, one of which is reproduced here:
  2119.  
  2120.                                ATTENTION
  2121.         This room is fullfilled mit special electronische equippment.
  2122.         Fingergrabbing and pressing the cnoeppkes from the computers is
  2123.         allowed for die experts only!  So all the "lefthanders" stay away
  2124.         and do not disturben the brainstorming von here working
  2125.         intelligencies.  Otherwise you will be out thrown and kicked
  2126.         anderswhere!  Also: please keep still and only watchen astaunished
  2127.         the blinkenlights.
  2128.  
  2129.    See also {geef}.
  2130.  
  2131. :blit: /blit/ vt. 1. To copy a large array of bits from one part
  2132.    of a computer's memory to another part, particularly when the
  2133.    memory is being used to determine what is shown on a display
  2134.    screen.  "The storage allocator picks through the table and copies
  2135.    the good parts up into high memory, and then blits it all back
  2136.    down again."  See {bitblt}, {BLT}, {dd}, {cat},
  2137.    {blast}, {snarf}.  More generally, to perform some operation
  2138.    (such as toggling) on a large array of bits while moving them.
  2139.    2. All-capitalized as `BLIT': an early experimental bit-mapped
  2140.    terminal designed by Rob Pike at Bell Labs, later commercialized as
  2141.    the AT&T 5620.  (The folk etymology from `Bell Labs Intelligent
  2142.    Terminal' is incorrect.)
  2143.  
  2144. :blitter: /blit'r/ n. A special-purpose chip or hardware system
  2145.    built to perform {blit} operations, esp. used for fast
  2146.    implementation of bit-mapped graphics.  The Commodore Amiga and a
  2147.    few other micros have these, but in 1991 the trend is away from
  2148.    them (however, see {cycle of reincarnation}).  Syn. {raster
  2149.    blaster}.
  2150.  
  2151. :blivet: /bliv'*t/ [allegedly from a World War II military term
  2152.    meaning "ten pounds of manure in a five-pound bag"] n. 1. An
  2153.    intractable problem.  2. A crucial piece of hardware that can't be
  2154.    fixed or replaced if it breaks.  3. A tool that has been hacked
  2155.    over by so many incompetent programmers that it has become an
  2156.    unmaintainable tissue of hacks.  4. An out-of-control but
  2157.    unkillable development effort.  5. An embarrassing bug that pops up
  2158.    during a customer demo.
  2159.  
  2160.    This term has other meanings in other technical cultures; among
  2161.    experimental physicists and hardware engineers of various kinds it
  2162.    seems to mean any random object of unknown purpose (similar to
  2163.    hackish use of {frob}).  It has also been used to describe an
  2164.    amusing trick-the-eye drawing resembling a three-pronged fork that
  2165.    appears to depict a three-dimensional object until one realizes
  2166.    that the parts fit together in an impossible way.
  2167.  
  2168. :BLOB: [acronym, Binary Large OBject] n. Used by database people
  2169.    for any random large block of bits which needs to be stored in a
  2170.    database, such as a picture or sound file.  The essential point
  2171.    about a BLOB is that it's an object you can't interpret within the
  2172.    database itself.
  2173.  
  2174. :block: [from process scheduling terminology in OS theory] 1. vi.
  2175.    To delay or sit idle while waiting for something.  "We're blocking
  2176.    until everyone gets here."  Compare {busy-wait}.  2. `block
  2177.    on' vt. To block, waiting for (something).  "Lunch is blocked on
  2178.    Phil's arrival."
  2179.  
  2180. :block transfer computations: n. From the television series
  2181.    "Dr. Who", in which it referred to computations so fiendishly
  2182.    subtle and complex that they could not be performed by machines.
  2183.    Used to refer to any task that should be expressible as an
  2184.    algorithm in theory, but isn't.
  2185.  
  2186. :blow an EPROM: /bloh *n ee'prom/ v. (alt. `blast an EPROM',
  2187.    `burn an EPROM') To program a read-only memory, e.g. for use
  2188.    with an embedded system.  This term arises because the programming
  2189.    process for the Programmable Read-Only Memories (PROMs) that
  2190.    preceded present-day Erasable Programmable Read-Only Memories
  2191.    (EPROMs) involved intentionally blowing tiny electrical fuses on
  2192.    the chip.  Thus, one was said to `blow' (or `blast') a PROM, and
  2193.    the terminology carried over even though the write process on
  2194.    EPROMs is nondestructive.
  2195.  
  2196. :blow away: vt. To remove (files and directories) from permanent
  2197.    storage, generally by accident.  "He reformatted the wrong
  2198.    partition and blew away last night's netnews."  Oppose {nuke}.
  2199.  
  2200. :blow out: vi. Of software, to fail spectacularly; almost as
  2201.    serious as {crash and burn}.  See {blow past}, {blow up},
  2202.    {die horribly}.
  2203.  
  2204. :blow past: vt. To {blow out} despite a safeguard.  "The server blew
  2205.    past the 5K reserve buffer."
  2206.  
  2207. :blow up: vi. 1. [scientific computation] To become unstable.  Suggests
  2208.    that the computation is diverging so rapidly that it will soon
  2209.    overflow or at least go {nonlinear}.  2.  Syn. {blow out}.
  2210.  
  2211. :BLT: /B-L-T/, /bl*t/ or (rarely) /belt/ n.,vt. Synonym for
  2212.    {blit}.  This is the original form of {blit} and the ancestor
  2213.    of {bitblt}.  It referred to any large bit-field copy or move
  2214.    operation (one resource-intensive memory-shuffling operation done
  2215.    on pre-paged versions of ITS, WAITS, and TOPS-10 was sardonically
  2216.    referred to as `The Big BLT').  The jargon usage has outlasted the
  2217.    {PDP-10} BLock Transfer instruction from which {BLT} derives;
  2218.    nowadays, the assembler mnemonic {BLT} almost always means
  2219.    `Branch if Less Than zero'.
  2220.  
  2221. :Blue Book: n. 1. Informal name for one of the three standard
  2222.    references on the page-layout and graphics-control language
  2223.    PostScript (`PostScript Language Tutorial and Cookbook', Adobe
  2224.    Systems, Addison-Wesley 1985, QA76.73.P67P68, ISBN 0-201-10179-3);
  2225.    the other two official guides are known as the {Green Book} and
  2226.    {Red Book}.  2. Informal name for one of the three standard
  2227.    references on Smalltalk: `Smalltalk-80: The Language and its
  2228.    Implementation', David Robson, Addison-Wesley 1983, QA76.8.S635G64,
  2229.    ISBN 0-201-11371-63 (this is also associated with green and red
  2230.    books).  3. Any of the 1988 standards issued by the CCITT's
  2231.    ninth plenary assembly.  Until now, they have changed color each
  2232.    review cycle (1984 was {Red Book}, 1992 would be {Green
  2233.    Book}); however, it is rumored that this convention is going to be
  2234.    dropped before 1992.  These include, among other things, the
  2235.    X.400 email spec and the Group 1 through 4 fax standards.  See also
  2236.    {{book titles}}.
  2237.  
  2238. :Blue Glue: [IBM] n. IBM's SNA (Systems Network Architecture), an
  2239.    incredibly {losing} and {bletcherous} communications protocol
  2240.    widely favored at commercial shops that don't know any better.  The
  2241.    official IBM definition is "that which binds blue boxes
  2242.    together."  See {fear and loathing}.  It may not be irrelevant
  2243.    that {Blue Glue} is the trade name of a 3M product that is
  2244.    commonly used to hold down the carpet squares to the removable
  2245.    panel floors common in {dinosaur pen}s.  A correspondent at
  2246.    U. Minn. reports that the CS department there has about 80 bottles
  2247.    of the stuff hanging about, so they often refer to any messy work
  2248.    to be done as `using the blue glue'.
  2249.  
  2250. :blue goo: n. Term for `police' {nanobot}s intended to prevent
  2251.    {gray goo}, denature hazardous waste, destroy pollution, put
  2252.    ozone back into the stratosphere, prevent halitosis, and promote
  2253.    truth, justice, and the American way, etc.  See
  2254.    {{nanotechnology}}.
  2255.  
  2256. :blurgle: /bl'gl/ [Great Britain] n. Spoken {metasyntactic variable},
  2257.    to indicate some text which is obvious from context, or which is
  2258.    already known. If several words are to be replaced, blurgle may
  2259.    well be doubled or trebled. "To look for something in several
  2260.    files use `grep string blurgle blurgle'."  In each case, "blurgle
  2261.    blurgle" would be understood to be replaced by the command you
  2262.    wished to run.  Compare {mumble}, sense 6.
  2263.  
  2264. :BNF: /B-N-F/ n. 1. [techspeak] Acronym for `Backus-Naur Form', a
  2265.    metasyntactic notation used to specify the syntax of programming
  2266.    languages, command sets, and the like.  Widely used for language
  2267.    descriptions but seldom documented anywhere, so that it must
  2268.    usually be learned by osmosis from other hackers.  Consider this
  2269.    BNF for a U.S. postal address:
  2270.  
  2271.       <postal-address> ::= <name-part> <street-address> <zip-part>
  2272.  
  2273.       <personal-part> ::= <name> | <initial> "."
  2274.  
  2275.       <name-part> ::= <personal-part> <last-name> [<jr-part>] <EOL>
  2276.                     | <personal-part> <name-part>
  2277.  
  2278.       <street-address> ::= [<apt>] <house-num> <street-name> <EOL>
  2279.  
  2280.       <zip-part> ::= <town-name> "," <state-code> <ZIP-code> <EOL>
  2281.  
  2282.    This translates into English as: "A postal-address consists of a
  2283.    name-part, followed by a street-address part, followed by a
  2284.    zip-code part.  A personal-part consists of either a first name or
  2285.    an initial followed by a dot.  A name-part consists of either: a
  2286.    personal-part followed by a last name followed by an optional
  2287.    `jr-part' (Jr., Sr., or dynastic number) and end-of-line, or a
  2288.    personal part followed by a name part (this rule illustrates the
  2289.    use of recursion in BNFs, covering the case of people who use
  2290.    multiple first and middle names and/or initials).  A street address
  2291.    consists of an optional apartment specifier, followed by a street
  2292.    number, followed by a street name.  A zip-part consists of a
  2293.    town-name, followed by a comma, followed by a state code, followed
  2294.    by a ZIP-code followed by an end-of-line."  Note that many things
  2295.    (such as the format of a personal-part, apartment specifier, or
  2296.    ZIP-code) are left unspecified.  These are presumed to be obvious
  2297.    from context or detailed somewhere nearby.  See also {parse}.
  2298.    2. The term is also used loosely for any number of variants and
  2299.    extensions, possibly containing some or all of the {regexp}
  2300.    wildcards such as `*' or `+'.  In fact the example above
  2301.    isn't the pure form invented for the Algol-60 report; it uses
  2302.    `[]', which was introduced a few years later in IBM's PL/I
  2303.    definition but is now universally recognized.  3. In
  2304.    {{science-fiction fandom}}, BNF means `Big-Name Fan'
  2305.    (someone famous or notorious).  Years ago a fan started handing out
  2306.    black-on-green BNF buttons at SF conventions; this confused the
  2307.    hacker contingent terribly.
  2308.  
  2309. :boa: [IBM] n. Any one of the fat cables that lurk under the floor
  2310.    in a {dinosaur pen}.  Possibly so called because they display a
  2311.    ferocious life of their own when you try to lay them straight and
  2312.    flat after they have been coiled for some time.  It is rumored
  2313.    within IBM that channel cables for the 370 are limited to 200 feet
  2314.    because beyond that length the boas get dangerous --- and it is
  2315.    worth noting that one of the major cable makers uses the trademark
  2316.    `Anaconda'.
  2317.  
  2318. :board: n. 1. In-context synonym for {bboard}; sometimes used
  2319.    even for USENET newsgroups.  2. An electronic circuit board
  2320.    (compare {card}).
  2321.  
  2322. :boat anchor: n. 1. Like {doorstop} but more severe; implies that
  2323.    the offending hardware is irreversibly dead or useless.  "That was
  2324.    a working motherboard once.  One lightning strike later, instant
  2325.    boat anchor!"  2. A person who just takes up space.
  2326.  
  2327. :BOF: /B-O-F/ or /bof/ n. Abbreviation for the phrase "Birds
  2328.    Of a Feather" (flocking together), an informal discussion group
  2329.    and/or bull session scheduled on a conference program.  It is not
  2330.    clear where or when this term originated, but the term is
  2331.    associated with the USENIX conferences for UNIX techies and was
  2332.    already established there by 1984.
  2333.  
  2334. :bogo-sort: /boh`goh-sort'/ n. (var. `stupid-sort') The
  2335.    archetypical perversely awful algorithm (as opposed to {bubble
  2336.    sort}, which is merely the generic *bad* algorithm).
  2337.    Bogo-sort is equivalent to repeatedly throwing a deck of cards in
  2338.    the air, picking them up at random, and then testing whether they
  2339.    are in order.  It serves as a sort of canonical example of
  2340.    awfulness.  Looking at a program and seeing a dumb algorithm, one
  2341.    might say "Oh, I see, this program uses bogo-sort."  Compare
  2342.    {bogus}, {brute force}.
  2343.  
  2344. :bogometer: /boh-gom'-*t-er/ n. See {bogosity}.  Compare the
  2345.    `wankometer' described in the {wank} entry; see also
  2346.    {bogus}.
  2347.  
  2348. :bogon: /boh'gon/ [by analogy with proton/electron/neutron, but
  2349.    doubtless reinforced after 1980 by the similarity to Douglas
  2350.    Adams's `Vogons'; see the Bibliography in {appendix C}] n.
  2351.    1. The elementary particle of bogosity (see {quantum
  2352.    bogodynamics}).  For instance, "the Ethernet is emitting bogons
  2353.    again" means that it is broken or acting in an erratic or bogus
  2354.    fashion.  2. A query packet sent from a TCP/IP domain resolver to a
  2355.    root server, having the reply bit set instead of the query bit.
  2356.    3. Any bogus or incorrectly formed packet sent on a network.  4. By
  2357.    synecdoche, used to refer to any bogus thing, as in "I'd like to
  2358.    go to lunch with you but I've got to go to the weekly staff
  2359.    bogon".  5. A person who is bogus or who says bogus things.  This
  2360.    was historically the original usage, but has been overtaken by its
  2361.    derivative senses 1--4.  See also {bogosity}, {bogus};
  2362.    compare {psyton}, {fat electrons}, {magic smoke}.
  2363.  
  2364. :bogon filter: /boh'gon fil'tr/ n. Any device, software or hardware,
  2365.    that limits or suppresses the flow and/or emission of bogons.
  2366.    "Engineering hacked a bogon filter between the Cray and
  2367.    the VAXen, and now we're getting fewer dropped packets."  See
  2368.    also {bogosity}, {bogus}.
  2369.  
  2370. :bogon flux: /boh'gon fluhks/ n. A measure of a supposed field of
  2371.    {bogosity} emitted by a speaker, measured by a {bogometer};
  2372.    as a speaker starts to wander into increasing bogosity a listener
  2373.    might say "Warning, warning, bogon flux is rising".  See
  2374.    {quantum bogodynamics}.
  2375.  
  2376. :bogosity: /boh-go's*-tee/ n. 1. The degree to which something is
  2377.    {bogus}.  At CMU, bogosity is measured with a {bogometer}; in
  2378.    a seminar, when a speaker says something bogus, a listener might
  2379.    raise his hand and say "My bogometer just triggered".  More
  2380.    extremely, "You just pinned my bogometer" means you just said or
  2381.    did something so outrageously bogus that it is off the scale,
  2382.    pinning the bogometer needle at the highest possible reading (one
  2383.    might also say "You just redlined my bogometer").  The
  2384.    agreed-upon unit of bogosity is the microLenat /mi:k`roh-len'*t/
  2385.    (uL).  The consensus is that this is the largest unit practical
  2386.    for everyday use.  2. The potential field generated by a {bogon
  2387.    flux}; see {quantum bogodynamics}.  See also {bogon flux},
  2388.    {bogon filter}, {bogus}.
  2389.  
  2390.    Historical note: The microLenat was invented as an attack against
  2391.    noted computer scientist Doug Lenat by a {tenured graduate
  2392.    student}.  Doug had failed the student on an important exam for
  2393.    giving only "AI is bogus" as his answer to the questions.  The
  2394.    slur is generally considered unmerited, but it has become a running
  2395.    gag nevertheless.  Some of Doug's friends argue that *of
  2396.    course* a microLenat is bogus, since it is only one millionth of a
  2397.    Lenat.  Others have suggested that the unit should be redesignated
  2398.    after the grad student, as the microReid.
  2399.  
  2400. :bogotify: /boh-go't*-fi:/ vt. To make or become bogus.  A
  2401.    program that has been changed so many times as to become completely
  2402.    disorganized has become bogotified.  If you tighten a nut too hard
  2403.    and strip the threads on the bolt, the bolt has become bogotified
  2404.    and you had better not use it any more.  This coinage led to the
  2405.    notional `autobogotiphobia' defined as `the fear of becoming
  2406.    bogotified'; but is not clear that the latter has ever been
  2407.    `live' jargon rather than a self-conscious joke in jargon about
  2408.    jargon.  See also {bogosity}, {bogus}.
  2409.  
  2410. :bogue out: /bohg owt/ vi. To become bogus, suddenly and
  2411.    unexpectedly.  "His talk was relatively sane until somebody asked
  2412.    him a trick question; then he bogued out and did nothing but
  2413.    {flame} afterwards."  See also {bogosity}, {bogus}.
  2414.  
  2415. :bogus: adj. 1. Non-functional.  "Your patches are bogus."
  2416.    2. Useless.  "OPCON is a bogus program."  3. False.  "Your
  2417.    arguments are bogus."  4. Incorrect.  "That algorithm is bogus."
  2418.    5. Unbelievable.  "You claim to have solved the halting problem
  2419.    for Turing Machines?  That's totally bogus."  6. Silly.  "Stop
  2420.    writing those bogus sagas."
  2421.  
  2422.    Astrology is bogus.  So is a bolt that is obviously about to break.
  2423.    So is someone who makes blatantly false claims to have solved a
  2424.    scientific problem.  (This word seems to have some, but not all, of
  2425.    the connotations of {random} --- mostly the negative ones.)
  2426.  
  2427.    It is claimed that `bogus' was originally used in the hackish sense
  2428.    at Princeton in the late 1960s.  It was spread to CMU and Yale by
  2429.    Michael Shamos, a migratory Princeton alumnus.  A glossary of bogus
  2430.    words was compiled at Yale when the word was first popularized (see
  2431.    {autobogotiphobia} under {bogotify}). The word spread into
  2432.    hackerdom from CMU and MIT.  By the early 1980s it was also
  2433.    current in something like the hackish sense in West Coast teen
  2434.    slang, and it had gone mainstream by 1985.  A correspondent from
  2435.    Cambridge reports, by contrast, that these uses of `bogus' grate on
  2436.    British nerves; in Britain the word means, rather specifically,
  2437.    `counterfeit', as in "a bogus 10-pound note".
  2438.  
  2439. :Bohr bug: /bohr buhg/ [from quantum physics] n. A repeatable
  2440.    {bug}; one that manifests reliably under a possibly unknown but
  2441.    well-defined set of conditions.  Antonym of {heisenbug}; see also
  2442.    {mandelbug}.
  2443.  
  2444. :boink: /boynk/ [USENET: ascribed there to the TV series
  2445.    "Cheers" and "Moonlighting"] 1. To have sex with;
  2446.    compare {bounce}, sense 3. (This is mainstream slang.) In
  2447.    Commonwealth hackish the variant `bonk' is more common.  2. After
  2448.    the original Peter Korn `Boinkon' {USENET} parties, used for
  2449.    almost any net social gathering, e.g., Miniboink, a small boink
  2450.    held by Nancy Gillett in 1988; Minniboink, a Boinkcon in Minnesota
  2451.    in 1989; Humpdayboinks, Wednesday get-togethers held in the San
  2452.    Francisco Bay Area.  Compare {@-party}.  3. Var of `bonk';
  2453.    see {bonk/oif}.
  2454.  
  2455. :bomb: 1. v. General synonym for {crash} (sense 1) except that
  2456.    it is not used as a noun; esp. used of software or OS failures.
  2457.    "Don't run Empire with less than 32K stack, it'll bomb."
  2458.    2. n.,v. Atari ST and Macintosh equivalents of a UNIX `panic' or
  2459.    Amiga {guru} (sense 2), where icons of little black-powder bombs
  2460.    or mushroom clouds are displayed, indicating that the system has
  2461.    died.  On the Mac, this may be accompanied by a decimal (or
  2462.    occasionally hexadecimal) number indicating what went wrong,
  2463.    similar to the Amiga {guru meditation} number.  {{MS-DOS}}
  2464.    machines tend to get {locked up} in this situation.
  2465.  
  2466. :bondage-and-discipline language: A language (such as Pascal, Ada,
  2467.    APL, or Prolog) that, though ostensibly general-purpose, is
  2468.    designed so as to enforce an author's theory of `right
  2469.    programming' even though said theory is demonstrably inadequate for
  2470.    systems hacking or even vanilla general-purpose programming.  Often
  2471.    abbreviated `B&D'; thus, one may speak of things "having the
  2472.    B&D nature".  See {{Pascal}}; oppose {languages of choice}.
  2473.  
  2474. :bonk/oif: /bonk/, /oyf/ interj. In the {MUD} community, it has
  2475.    become traditional to express pique or censure by `bonking' the
  2476.    offending person.  There is a convention that one should
  2477.    acknowledge a bonk by saying `oif!' and a myth to the effect that
  2478.    failing to do so upsets the cosmic bonk/oif balance, causing much
  2479.    trouble in the universe.  Some MUDs have implemented special
  2480.    commands for bonking and oifing.  See also {talk mode},
  2481.    {posing}.
  2482.  
  2483. :book titles:: There is a tradition in hackerdom of informally
  2484.    tagging important textbooks and standards documents with the
  2485.    dominant color of their covers or with some other conspicuous
  2486.    feature of the cover.  Many of these are described in this lexicon
  2487.    under their own entries. See {Aluminum Book}, {Blue Book},
  2488.    {Cinderella Book}, {Devil Book}, {Dragon Book}, {Green
  2489.    Book}, {Orange Book}, {Pink-Shirt Book}, {Purple Book},
  2490.    {Red Book}, {Silver Book}, {White Book}, {Wizard Book},
  2491.    {Yellow Book}, and {bible}.
  2492.  
  2493. :boot: [techspeak; from `by one's bootstraps'] v.,n. To load and
  2494.    initialize the operating system on a machine.  This usage is no
  2495.    longer jargon (having passed into techspeak) but has given rise to
  2496.    some derivatives that are still jargon.
  2497.  
  2498.    The derivative `reboot' implies that the machine hasn't been
  2499.    down for long, or that the boot is a {bounce} intended to clear
  2500.    some state of {wedgitude}.  This is sometimes used of human
  2501.    thought processes, as in the following exchange: "You've lost
  2502.    me." "OK, reboot.  Here's the theory...."
  2503.  
  2504.    This term is also found in the variants `cold boot' (from
  2505.    power-off condition) and `warm boot' (with the CPU and all
  2506.    devices already powered up, as after a hardware reset or software
  2507.    crash).
  2508.  
  2509.    Another variant: `soft boot', reinitialization of only part of a
  2510.    system, under control of other software still running: "If
  2511.    you're running the {mess-dos} emulator, control-alt-insert will
  2512.    cause a soft-boot of the emulator, while leaving the rest of the
  2513.    system running."
  2514.  
  2515.    Opposed to this there is `hard boot', which connotes hostility
  2516.    towards or frustration with the machine being booted:  "I'll have
  2517.    to hard-boot this losing Sun." "I recommend booting it
  2518.    hard." One often hard-boots by performing a {power cycle}.
  2519.  
  2520.    Historical note: this term derives from `bootstrap loader', a short
  2521.    program that was read in from cards or paper tape, or toggled in
  2522.    from the front panel switches.  This program was always very short
  2523.    (great efforts were expended on making it short in order to
  2524.    minimize the labor and chance of error involved in toggling it in),
  2525.    but was just smart enough to read in a slightly more complex
  2526.    program (usually from a card or paper tape reader), to which it
  2527.    handed control; this program in turn was smart enough to read the
  2528.    application or operating system from a magnetic tape drive or disk
  2529.    drive.  Thus, in successive steps, the computer `pulled itself up
  2530.    by its bootstraps' to a useful operating state.  Nowadays the
  2531.    bootstrap is usually found in ROM or EPROM, and reads the first
  2532.    stage in from a fixed location on the disk, called the `boot
  2533.    block'.  When this program gains control, it is powerful enough to
  2534.    load the actual OS and hand control over to it.
  2535.  
  2536. :bottom-up implementation: n. Hackish opposite of the techspeak term
  2537.    `top-down design'.  It is now received wisdom in most
  2538.    programming cultures that it is best to design from higher levels
  2539.    of abstraction down to lower, specifying sequences of action in
  2540.    increasing detail until you get to actual code.  Hackers often find
  2541.    (especially in exploratory designs that cannot be closely
  2542.    specified in advance) that it works best to *build* things in
  2543.    the opposite order, by writing and testing a clean set of primitive
  2544.    operations and then knitting them together.
  2545.  
  2546. :bounce: v. 1. [perhaps from the image of a thrown ball bouncing
  2547.    off a wall] An electronic mail message that is undeliverable and
  2548.    returns an error notification to the sender is said to `bounce'.
  2549.    See also {bounce message}.  2. [Stanford] To play volleyball.
  2550.    At the now-demolished {D. C. Power Lab} building used by the
  2551.    Stanford AI Lab in the 1970s, there was a volleyball court on the
  2552.    front lawn.  From 5 P.M. to 7 P.M. was the scheduled
  2553.    maintenance time for the computer, so every afternoon at 5 the
  2554.    computer would become unavailable, and over the intercom a voice
  2555.    would cry, "Now hear this: bounce, bounce!" followed by Brian
  2556.    McCune loudly bouncing a volleyball on the floor outside the
  2557.    offices of known volleyballers.  3. To engage in sexual
  2558.    intercourse; prob. from the expression `bouncing the mattress',
  2559.    but influenced by Roo's psychosexually loaded "Try bouncing me,
  2560.    Tigger!" from the "Winnie-the-Pooh" books.  Compare
  2561.    {boink}.  4. To casually reboot a system in order to clear up a
  2562.    transient problem.  Reported primarily among {VMS} users.
  2563.    5. [IBM] To {power cycle} a peripheral in order to reset it.
  2564.  
  2565. :bounce message: [UNIX] n. Notification message returned to sender by
  2566.    a site unable to relay {email} to the intended {{Internet address}}
  2567.    recipient or the next link in a {bang path} (see {bounce}).
  2568.    Reasons might include a nonexistent or misspelled username or a
  2569.    {down} relay site.  Bounce messages can themselves fail, with
  2570.    occasionally ugly results; see {sorcerer's apprentice mode}.
  2571.    The terms `bounce mail' and `barfmail' also common.
  2572.  
  2573. :box: n. 1. A computer; esp. in the construction `foo box'
  2574.    where foo is some functional qualifier, like `graphics', or
  2575.    the name of an OS (thus, `UNIX box', `MS-DOS box', etc.)  "We
  2576.    preprocess the data on UNIX boxes before handing it up to the
  2577.    mainframe."  2. [within IBM] Without qualification but within an
  2578.    SNA-using site, this refers specifically to an IBM front-end
  2579.    processor or FEP /F-E-P/.  An FEP is a small computer necessary
  2580.    to enable an IBM {mainframe} to communicate beyond the limits of
  2581.    the {dinosaur pen}.  Typically used in expressions like the cry
  2582.    that goes up when an SNA network goes down: "Looks like the
  2583.    {box} has fallen over." (See {fall over}.) See also
  2584.    {IBM}, {fear and loathing}, {fepped out}, {Blue
  2585.    Glue}.
  2586.  
  2587. :boxed comments: n. Comments (explanatory notes attached to program
  2588.    instructions) that occupy several lines by themselves; so called
  2589.    because in assembler and C code they are often surrounded by a box
  2590.    in a style something like this:
  2591.  
  2592.      /*************************************************
  2593.       *
  2594.       * This is a boxed comment in C style
  2595.       *
  2596.       *************************************************/
  2597.  
  2598.    Common variants of this style omit the asterisks in column 2 or add
  2599.    a matching row of asterisks closing the right side of the box.  The
  2600.    sparest variant omits all but the comment delimiters themselves;
  2601.    the `box' is implied.  Oppose {winged comments}.
  2602.  
  2603. :boxen: /bok'sn/ [by analogy with {VAXen}] pl.n. Fanciful
  2604.    plural of {box} often encountered in the phrase `UNIX boxen',
  2605.    used to describe commodity {{UNIX}} hardware.  The connotation is
  2606.    that any two UNIX boxen are interchangeable.
  2607.  
  2608. :boxology: /bok-sol'*-jee/ n. Syn. {ASCII art}.  This term
  2609.    implies a more restricted domain, that of box-and-arrow drawings.
  2610.    "His report has a lot of boxology in it."  Compare
  2611.    {macrology}.
  2612.  
  2613. :bozotic: /boh-zoh'tik/ or /boh-zo'tik/ [from the name of a TV
  2614.    clown even more losing than Ronald McDonald] adj. Resembling or
  2615.    having the quality of a bozo; that is, clownish, ludicrously wrong,
  2616.    unintentionally humorous.  Compare {wonky}, {demented}.  Note
  2617.    that the noun `bozo' occurs in slang, but the mainstream
  2618.    adjectival form would be `bozo-like' or (in New England)
  2619.    `bozoish'.
  2620.  
  2621. :BQS: /B-Q-S/ adj. Syn. {Berkeley Quality Software}.
  2622.  
  2623. :brain dump: n. The act of telling someone everything one knows
  2624.    about a particular topic or project.  Typically used when someone
  2625.    is going to let a new party maintain a piece of code.  Conceptually
  2626.    analogous to an operating system {core dump} in that it saves a
  2627.    lot of useful {state} before an exit.  "You'll have to
  2628.    give me a brain dump on FOOBAR before you start your new job at
  2629.    HackerCorp."  See {core dump} (sense 4).  At Sun, this is also
  2630.    known as `TOI' (transfer of information).
  2631.  
  2632. :brain fart: n. The actual result of a {braino}, as opposed to
  2633.    the mental glitch which is the braino itself.  E.g. typing
  2634.    `dir' on a UNIX box after a session with DOS.
  2635.  
  2636. :brain-damaged: 1. [generalization of `Honeywell Brain Damage'
  2637.    (HBD), a theoretical disease invented to explain certain utter
  2638.    cretinisms in Honeywell {{Multics}}] adj. Obviously wrong;
  2639.    {cretinous}; {demented}.  There is an implication that the
  2640.    person responsible must have suffered brain damage, because he
  2641.    should have known better.  Calling something brain-damaged is
  2642.    really bad; it also implies it is unusable, and that its failure to
  2643.    work is due to poor design rather than some accident.  "Only six
  2644.    monocase characters per file name?  Now *that's*
  2645.    brain-damaged!"  2. [esp. in the Mac world] May refer to free
  2646.    demonstration software that has been deliberately crippled in some
  2647.    way so as not to compete with the commercial product it is
  2648.    intended to sell.  Syn.  {crippleware}.
  2649.  
  2650. :brain-dead: adj. Brain-damaged in the extreme.  It tends to imply
  2651.    terminal design failure rather than malfunction or simple
  2652.    stupidity.  "This comm program doesn't know how to send a break
  2653.    --- how brain-dead!"
  2654.  
  2655. :braino: /bray'no/ n. Syn. for {thinko}. See also {brain
  2656.    fart}.
  2657.  
  2658. :branch to Fishkill: [IBM: from the location of one of the
  2659.    corporation's facilities] n. Any unexpected jump in a program that
  2660.    produces catastrophic or just plain weird results.  See {jump
  2661.    off into never-never land}, {hyperspace}.
  2662.  
  2663. :brand brand brand: n. Humorous catch-phrase from {BartleMUD}s, in
  2664.    which players were described carrying a list of objects, the most
  2665.    common of which would usually be a brand.  Often used as a joke in
  2666.    {talk mode} as in "Fred the wizard is here, carrying brand ruby
  2667.    brand brand brand kettle broadsword flamethrower".  A brand is a
  2668.    torch, of course; one burns up a lot of those exploring dungeons.
  2669.    Prob. influenced by the famous Monty Python "Spam" skit.
  2670.  
  2671. :break: 1. vt. To cause to be broken (in any sense).  "Your latest
  2672.    patch to the editor broke the paragraph commands."  2. v.  (of a
  2673.    program) To stop temporarily, so that it may debugged.  The place
  2674.    where it stops is a `breakpoint'.  3. [techspeak] vi. To send an
  2675.    RS-232 break (125 msec of line high) over a serial comm line.
  2676.    4. [UNIX] vi. To strike whatever key currently causes the tty
  2677.    driver to send SIGINT to the current process.  Normally, break
  2678.    (sense 3) or delete does this.  5. `break break' may be said to
  2679.    interrupt a conversation (this is an example of verb doubling).
  2680.  
  2681. :break-even point: n. in the process of implementing a new computer
  2682.    language, the point at which the language is sufficiently effective
  2683.    that one can implement the language in itself.  That is, for a new
  2684.    language called, hypothetically, FOOGOL, one has reached break-even
  2685.    when one can write a demonstration compiler for FOOGOL in FOOGOL,
  2686.    discard the original implementation language, and thereafter use
  2687.    older versions of FOOGOL to develop newer ones.  This is an
  2688.    important milestone; see {MFTL}.
  2689.  
  2690. :breath-of-life packet: [XEROX PARC] n. An Ethernet packet that
  2691.    contained bootstrap (see {boot}) code, periodically sent out
  2692.    from a working computer to infuse the `breath of life' into any
  2693.    computer on the network that had happened to crash.  The machines
  2694.    had hardware or firmware that would wait for such a packet after a
  2695.    catastrophic error.
  2696.  
  2697. :breedle: n. See {feep}.
  2698.  
  2699. :bring X to its knees: v. To present a machine, operating system,
  2700.    piece of software, or algorithm with a load so extreme or
  2701.    {pathological} that it grinds to a halt.  "To bring a MicroVAX
  2702.    to its knees, try twenty users running {vi} --- or four running
  2703.    {EMACS}."  Compare {hog}.
  2704.  
  2705. :brittle: adj. Said of software that is functional but easily broken
  2706.    by changes in operating environment or configuration, or by any
  2707.    minor tweak to the software itself.  Also, any system that
  2708.    responds inappropriately and disastrously to expected external
  2709.    stimuli; e.g., a file system that is usually totally scrambled by a
  2710.    power failure is said to be brittle.  This term is often used to
  2711.    describe the results of a research effort that were never intended
  2712.    to be robust, but it can be applied to commercially developed
  2713.    software, which displays the quality far more often than it ought
  2714.    to.  Oppose {robust}.
  2715.  
  2716. :broadcast storm: n. An incorrect packet broadcast on a network that
  2717.    causes most hosts to respond all at once, typically with wrong
  2718.    answers that start the process over again.  See {network
  2719.    meltdown}.
  2720.  
  2721. :broken: adj. 1. Not working properly (of programs).  2. Behaving
  2722.    strangely; especially (when used of people) exhibiting extreme
  2723.    depression.
  2724.  
  2725. :broken arrow: [IBM] n. The error code displayed on line 25 of a
  2726.    3270 terminal (or a PC emulating a 3270) for various kinds of
  2727.    protocol violations and "unexpected" error conditions (including
  2728.    connection to a {down} computer).  On a PC, simulated with
  2729.    `->/_', with the two center characters overstruck. In true
  2730.    {luser} fashion, the original documentation of these codes
  2731.    (visible on every 3270 terminal, and necessary for debugging
  2732.    network problems) was confined to an IBM customer engineering
  2733.    manual.
  2734.  
  2735.    Note: to appreciate this term fully, it helps to know that `broken
  2736.    arrow' is also military jargon for an accident involving nuclear
  2737.    weapons.... 
  2738.  
  2739. :broket: /broh'k*t/ or /broh'ket`/ [by analogy with `bracket': a
  2740.    `broken bracket'] n. Either of the characters `<' and `>',
  2741.    when used as paired enclosing delimiters.  This word
  2742.    originated as a contraction of the phrase `broken bracket', that
  2743.    is, a bracket that is bent in the middle.  (At MIT, and apparently
  2744.    in the {Real World} as well, these are usually called {angle
  2745.    brackets}.)
  2746.  
  2747. :Brooks's Law: prov. "Adding manpower to a late software project
  2748.    makes it later" --- a result of the fact that the advantage from
  2749.    splitting work among N programmers is O(N) (that is,
  2750.    proportional to N), but the complexity and communications
  2751.    cost associated with coordinating and then merging their work
  2752.    is O(N^2) (that is, proportional to the square of N).
  2753.    The quote is from Fred Brooks, a manager of IBM's OS/360 project
  2754.    and author of `The Mythical Man-Month' (Addison-Wesley, 1975,
  2755.    ISBN 0-201-00650-2), an excellent early book on software
  2756.    engineering.  The myth in question has been most tersely expressed
  2757.    as "Programmer time is fungible" and Brooks established
  2758.    conclusively that it is not.  Hackers have never forgotten his
  2759.    advice; too often, {management} does.  See also
  2760.    {creationism}, {second-system effect}.
  2761.  
  2762. :BRS: /B-R-S/ n. Syn. {Big Red Switch}.  This abbreviation is
  2763.    fairly common on-line.
  2764.  
  2765. :brute force: adj. Describes a primitive programming style, one in
  2766.    which the programmer relies on the computer's processing power
  2767.    instead of using his or her own intelligence to simplify the
  2768.    problem, often ignoring problems of scale and applying na"ive
  2769.    methods suited to small problems directly to large ones.
  2770.  
  2771.    The {canonical} example of a brute-force algorithm is associated
  2772.    with the `traveling salesman problem' (TSP), a classical NP-hard
  2773.    problem: Suppose a person is in, say, Boston, and wishes to drive
  2774.    to N other cities.  In what order should he or she visit
  2775.    them in order to minimize the distance travelled?  The brute-force
  2776.    method is to simply generate all possible routes and compare the
  2777.    distances; while guaranteed to work and simple to implement, this
  2778.    algorithm is clearly very stupid in that it considers even
  2779.    obviously absurd routes (like going from Boston to Houston via San
  2780.    Francisco and New York, in that order).  For very small N it
  2781.    works well, but it rapidly becomes absurdly inefficient when
  2782.    N increases (for N = 15, there are already
  2783.    1,307,674,368,000 possible routes to consider, and for
  2784.    N = 1000 --- well, see {bignum}).  See
  2785.    also {NP-}.
  2786.  
  2787.    A more simple-minded example of brute-force programming is finding
  2788.    the smallest number in a large list by first using an existing
  2789.    program to sort the list in ascending order, and then picking the
  2790.    first number off the front.
  2791.  
  2792.    Whether brute-force programming should be considered stupid or not
  2793.    depends on the context; if the problem isn't too big, the extra CPU
  2794.    time spent on a brute-force solution may cost less than the
  2795.    programmer time it would take to develop a more `intelligent'
  2796.    algorithm.  Alternatively, a more intelligent algorithm may imply
  2797.    more long-term complexity cost and bug-chasing than are justified
  2798.    by the speed improvement.
  2799.  
  2800.    Ken Thompson, co-inventor of UNIX, is reported to have uttered the
  2801.    epigram "When in doubt, use brute force".  He probably intended
  2802.    this as a {ha ha only serious}, but the original UNIX kernel's
  2803.    preference for simple, robust, and portable algorithms over
  2804.    {brittle} `smart' ones does seem to have been a significant
  2805.    factor in the success of that OS.  Like so many other tradeoffs in
  2806.    software design, the choice between brute force and complex,
  2807.    finely-tuned cleverness is often a difficult one that requires both
  2808.    engineering savvy and delicate esthetic judgment.
  2809.  
  2810. :brute force and ignorance: n. A popular design technique at many
  2811.    software houses --- {brute force} coding unrelieved by any
  2812.    knowledge of how problems have been previously solved in elegant
  2813.    ways.  Dogmatic adherence to design methodologies tends to
  2814.    encourage it.  Characteristic of early {larval stage}
  2815.    programming; unfortunately, many never outgrow it.  Often
  2816.    abbreviated BFI: "Gak, they used a bubble sort!  That's strictly
  2817.    from BFI."  Compare {bogosity}.
  2818.  
  2819. :BSD: /B-S-D/ n. [abbreviation for `Berkeley System Distribution'] a
  2820.    family of {{UNIX}} versions for the DEC {VAX} and PDP-11
  2821.    developed by Bill Joy and others at {Berzerkeley} starting
  2822.    around 1980, incorporating paged virtual memory, TCP/IP networking
  2823.    enhancements, and many other features.  The BSD versions (4.1, 4.2,
  2824.    and 4.3) and the commercial versions derived from them (SunOS,
  2825.    ULTRIX, and Mt. Xinu) held the technical lead in the UNIX world
  2826.    until AT&T's successful standardization efforts after about 1986,
  2827.    and are still widely popular.  See {{UNIX}}, {USG UNIX}.
  2828.  
  2829. :bubble sort: n. Techspeak for a particular sorting technique in
  2830.    which pairs of adjacent values in the list to be sorted are
  2831.    compared and interchanged if they are out of order; thus, list
  2832.    entries `bubble upward' in the list until they bump into one with a
  2833.    lower sort value.  Because it is not very good relative to other
  2834.    methods and is the one typically stumbled on by {na"ive} and
  2835.    untutored programmers, hackers consider it the {canonical}
  2836.    example of a na"ive algorithm.  The canonical example of a really
  2837.    *bad* algorithm is {bogo-sort}.  A bubble sort might be used
  2838.    out of ignorance, but any use of bogo-sort could issue only from
  2839.    brain damage or willful perversity.
  2840.  
  2841. :bucky bits: /buh'kee bits/ n. 1. obs. The bits produced by the
  2842.    CONTROL and META shift keys on a SAIL keyboard (octal 200 and 400
  2843.    respectively), resulting in a 9-bit keyboard character set.  The
  2844.    MIT AI TV (Knight) keyboards extended this with TOP and separate
  2845.    left and right CONTROL and META keys, resulting in a 12-bit
  2846.    character set; later, LISP Machines added such keys as SUPER,
  2847.    HYPER, and GREEK (see {space-cadet keyboard}).  2. By extension,
  2848.    bits associated with `extra' shift keys on any keyboard, e.g.,
  2849.    the ALT on an IBM PC or command and option keys on a Macintosh.
  2850.  
  2851.    It is rumored that `bucky bits' were named for Buckminster Fuller
  2852.    during a period when he was consulting at Stanford.  Actually,
  2853.    `Bucky' was Niklaus Wirth's nickname when *he* was at
  2854.    Stanford; he first suggested the idea of an EDIT key to set the
  2855.    8th bit of an otherwise 7-bit ASCII character.  This was used in a
  2856.    number of editors written at Stanford or in its environs (TV-EDIT
  2857.    and NLS being the best-known).  The term spread to MIT and CMU
  2858.    early and is now in general use.  See {double bucky},
  2859.    {quadruple bucky}.
  2860.  
  2861. :buffer overflow: n. What happens when you try to stuff more data
  2862.    into a buffer (holding area) than it can handle.  This may be due
  2863.    to a mismatch in the processing rates of the producing and
  2864.    consuming processes (see {overrun} and {firehose syndrome}),
  2865.    or because the buffer is simply too small to hold all the data that
  2866.    must accumulate before a piece of it can be processed. For example,
  2867.    in a text-processing tool that {crunch}es a line at a time, a
  2868.    short line buffer can result in {lossage} as input from a long
  2869.    line overflows the buffer and trashes data beyond it.  Good
  2870.    defensive programming would check for overflow on each character
  2871.    and stop accepting data when the buffer is full up.  The term is
  2872.    used of and by humans in a metaphorical sense. "What time did I
  2873.    agree to meet you?  My buffer must have overflowed."  Or "If I
  2874.    answer that phone my buffer is going to overflow."  See also
  2875.    {spam}, {overrun screw}.
  2876.  
  2877. :bug: n. An unwanted and unintended property of a program or
  2878.    hardware, esp. one that causes it to malfunction.  Antonym of
  2879.    {feature}.  Examples: "There's a bug in the editor: it writes
  2880.    things out backwards."  "The system crashed because of a hardware
  2881.    bug."  "Fred is a winner, but he has a few bugs" (i.e., Fred is
  2882.    a good guy, but he has a few personality problems).
  2883.  
  2884.    Historical note: Some have said this term came from telephone
  2885.    company usage, in which "bugs in a telephone cable" were blamed
  2886.    for noisy lines, but this appears to be an incorrect folk
  2887.    etymology.  Admiral Grace Hopper (an early computing pioneer better
  2888.    known for inventing {COBOL}) liked to tell a story in which a
  2889.    technician solved a persistent {glitch} in the Harvard Mark II
  2890.    machine by pulling an actual insect out from between the contacts
  2891.    of one of its relays, and she subsequently promulgated {bug} in
  2892.    its hackish sense as a joke about the incident (though, as she was
  2893.    careful to admit, she was not there when it happened).  For many
  2894.    years the logbook associated with the incident and the actual bug
  2895.    in question (a moth) sat in a display case at the Naval Surface
  2896.    Warfare Center.  The entire story, with a picture of the logbook
  2897.    and the moth taped into it, is recorded in the `Annals of the
  2898.    History of Computing', Vol. 3, No. 3 (July 1981), pp. 285--286.
  2899.  
  2900.    The text of the log entry (from September 9, 1945), reads "1545
  2901.    Relay #70 Panel F (moth) in relay.  First actual case of bug being
  2902.    found".  This wording seems to establish that the term was already
  2903.    in use at the time in its current specific sense --- and Hopper
  2904.    herself reports that the term `bug' was regularly applied to
  2905.    problems in radar electronics during WWII.  Indeed, the use of
  2906.    `bug' to mean an industrial defect was already established in
  2907.    Thomas Edison's time, and `bug' in the sense of an disruptive
  2908.    event goes back to Shakespeare!  In the first edition of Samuel
  2909.    Johnson's dictionary one meaning of `bug' is "A frightful
  2910.    object; a walking spectre"; this is traced to `bugbear', a Welsh
  2911.    term for a variety of mythological monster which (to complete the
  2912.    circle) has recently been reintroduced into the popular lexicon
  2913.    through fantasy role-playing games.
  2914.  
  2915.    In any case, in jargon the word almost never refers to insects.
  2916.    Here is a plausible conversation that never actually happened:
  2917.  
  2918.    "There is a bug in this ant farm!"
  2919.  
  2920.    "What do you mean?  I don't see any ants in it."
  2921.  
  2922.    "That's the bug."
  2923.  
  2924.    [There has been a widespread myth that the original bug was moved
  2925.    to the Smithsonian, and an earlier version of this entry so
  2926.    asserted.  A correspondent who thought to check discovered that the
  2927.    bug was not there.  While investigating this in late 1990, your
  2928.    editor discovered that the NSWC still had the bug, but had
  2929.    unsuccessfully tried to get the Smithsonian to accept it --- and
  2930.    that the present curator of the History of American Technology
  2931.    Museum didn't know this and agreed that it would make a worthwhile
  2932.    exhibit.  It was moved to the Smithsonian in mid-1991.  Thus, the
  2933.    process of investigating the original-computer-bug bug fixed it in
  2934.    an entirely unexpected way, by making the myth true!  --- ESR]
  2935.  
  2936. :bug-compatible: adj. Said of a design or revision that has been
  2937.    badly compromised by a requirement to be compatible with
  2938.    {fossil}s or {misfeature}s in other programs or (esp.)
  2939.    previous releases of itself. "MS-DOS 2.0 used \ as a path
  2940.    separator to be bug-compatible with some cretin's choice of / as an
  2941.    option character in 1.0."
  2942.  
  2943. :bug-for-bug compatible: n. Same as {bug-compatible}, with the
  2944.    additional implication that much tedious effort went into ensuring
  2945.    that each (known) bug was replicated.
  2946.  
  2947. :buglix: /buhg'liks/ n. Pejorative term referring to DEC's ULTRIX
  2948.    operating system in its earlier *severely* buggy versions.
  2949.    Still used to describe ULTRIX, but without venom.  Compare
  2950.    {HP-SUX}, {Nominal Semidestructor}, {Telerat},
  2951.    {sun-stools}.
  2952.  
  2953. :bulletproof: adj. Used of an algorithm or implementation considered
  2954.    extremely {robust}; lossage-resistant; capable of correctly
  2955.    recovering from any imaginable exception condition.  This is a rare
  2956.    and valued quality.  Syn. {armor-plated}.
  2957.  
  2958. :bum: 1. vt. To make highly efficient, either in time or space,
  2959.    often at the expense of clarity.  "I managed to bum three more
  2960.    instructions out of that code."  "I spent half the night bumming
  2961.    the interrupt code."  In {elder days}, John McCarthy (inventor
  2962.    of {LISP}) used to compare some efficiency-obsessed hackers
  2963.    among his students to "ski bums"; thus, optimization became
  2964.    "program bumming", and eventually just "bumming".  2. To
  2965.    squeeze out excess; to remove something in order to improve
  2966.    whatever it was removed from (without changing function; this
  2967.    distinguishes the process from a {featurectomy}).  3. n. A small
  2968.    change to an algorithm, program, or hardware device to make it more
  2969.    efficient.  "This hardware bum makes the jump instruction
  2970.    faster."  Usage: now uncommon, largely superseded by v. {tune}
  2971.    (and n. {tweak}, {hack}), though none of these exactly
  2972.    capture sense 2.  All these uses are rare in Commonwealth hackish,
  2973.    because in the parent dialects of English `bum' is a rude synonym
  2974.    for `buttocks'.
  2975.  
  2976. :bump: vt. Synonym for increment.  Has the same meaning as
  2977.    C's ++ operator.  Used esp. of counter variables, pointers, and
  2978.    index dummies in `for', `while', and `do-while'
  2979.    loops.
  2980.  
  2981. :burble: [from Lewis Carroll's "Jabberwocky"] v. Like {flame},
  2982.    but connotes that the source is truly clueless and ineffectual
  2983.    (mere flamers can be competent).  A term of deep contempt.
  2984.    "There's some guy on the phone burbling about how he got a DISK
  2985.    FULL error and it's all our comm software's fault."
  2986.  
  2987. :buried treasure: n. A surprising piece of code found in some
  2988.    program.  While usually not wrong, it tends to vary from {crufty}
  2989.    to {bletcherous}, and has lain undiscovered only because it was
  2990.    functionally correct, however horrible it is.  Used sarcastically,
  2991.    because what is found is anything *but* treasure.  Buried
  2992.    treasure almost always needs to be dug up and removed.  "I just
  2993.    found that the scheduler sorts its queue using {bubble sort}!
  2994.    Buried treasure!"
  2995.  
  2996. :burn-in period: n. 1. A factory test designed to catch systems
  2997.    with {marginal} components before they get out the door; the
  2998.    theory is that burn-in will protect customers by outwaiting the
  2999.    steepest part of the {bathtub curve} (see {infant
  3000.    mortality}).  2. A period of indeterminate length in which a person
  3001.    using a computer is so intensely involved in his project that he
  3002.    forgets basic needs such as food, drink, sleep, etc.  Warning:
  3003.    Excessive burn-in can lead to burn-out.  See {hack mode},
  3004.    {larval stage}.
  3005.  
  3006. :burst page: n. Syn. {banner}, sense 1.
  3007.  
  3008. :busy-wait: vi. Used of human behavior, conveys that the subject is
  3009.    busy waiting for someone or something, intends to move instantly as
  3010.    soon as it shows up, and thus cannot do anything else at the
  3011.    moment.  "Can't talk now, I'm busy-waiting till Bill gets off the
  3012.    phone."
  3013.  
  3014.    Technically, `busy-wait' means to wait on an event by
  3015.    {spin}ning through a tight or timed-delay loop that polls for
  3016.    the event on each pass, as opposed to setting up an interrupt
  3017.    handler and continuing execution on another part of the task.  This
  3018.    is a wasteful technique, best avoided on time-sharing systems where
  3019.    a busy-waiting program may {hog} the processor.
  3020.  
  3021. :buzz: vi. 1. Of a program, to run with no indication of progress
  3022.    and perhaps without guarantee of ever finishing; esp. said of
  3023.    programs thought to be executing tight loops of code.  A program
  3024.    that is buzzing appears to be {catatonic}, but you never get out
  3025.    of catatonia, while a buzzing loop may eventually end of its own
  3026.    accord.  "The program buzzes for about 10 seconds trying to sort
  3027.    all the names into order."  See {spin}; see also {grovel}.
  3028.    2. [ETA Systems] To test a wire or printed circuit trace for
  3029.    continuity by applying an AC rather than DC signal.  Some wire
  3030.    faults will pass DC tests but fail a buzz test.  3. To process an
  3031.    array or list in sequence, doing the same thing to each element.
  3032.    "This loop buzzes through the tz array looking for a terminator
  3033.    type."
  3034.  
  3035. :BWQ: /B-W-Q/ [IBM: abbreviation, `Buzz Word Quotient'] The
  3036.    percentage of buzzwords in a speech or documents.  Usually roughly
  3037.    proportional to {bogosity}.  See {TLA}.
  3038.  
  3039. :by hand: adv. Said of an operation (especially a repetitive,
  3040.    trivial, and/or tedious one) that ought to be performed
  3041.    automatically by the computer, but which a hacker instead has to
  3042.    step tediously through.  "My mailer doesn't have a command to
  3043.    include the text of the message I'm replying to, so I have to do it
  3044.    by hand."  This does not necessarily mean the speaker has to
  3045.    retype a copy of the message; it might refer to, say, dropping into
  3046.    a {subshell} from the mailer, making a copy of one's mailbox file,
  3047.    reading that into an editor, locating the top and bottom of the
  3048.    message in question, deleting the rest of the file, inserting `>'
  3049.    characters on each line, writing the file, leaving the editor,
  3050.    returning to the mailer, reading the file in, and later remembering
  3051.    to delete the file.  Compare {eyeball search}.
  3052.  
  3053. :byte:: /bi:t/ [techspeak] n. A unit of memory or data equal to
  3054.    the amount used to represent one character; on modern architectures
  3055.    this is usually 8 bits, but may be 9 on 36-bit machines.  Some
  3056.    older architectures used `byte' for quantities of 6 or 7 bits, and
  3057.    the PDP-10 supported `bytes' that were actually bitfields of
  3058.    1 to 36 bits!  These usages are now obsolete, and even 9-bit bytes
  3059.    have become rare in the general trend toward power-of-2 word sizes.
  3060.  
  3061.    Historical note: The term originated in 1956 during the early
  3062.    design phase for the IBM Stretch computer; originally it was
  3063.    described as 1 to 6 bits (typical I/O equipment of the period
  3064.    used 6-bit chunks of information).  The move to an 8-bit byte
  3065.    happened in late 1956, and this size was later adopted and
  3066.    promulgated as a standard by the System/360.  The term `byte' was
  3067.    coined by mutating the word `bite' so it would not be accidentally
  3068.    misspelled as {bit}.  See also {nybble}.
  3069.  
  3070. :bytesexual: /bi:t`sek'shu-*l/ adj. Said of hardware, denotes
  3071.    willingness to compute or pass data in either {big-endian} or
  3072.    {little-endian} format (depending, presumably, on a {mode bit}
  3073.    somewhere).  See also {NUXI problem}.
  3074.  
  3075. :bzzzt, wrong: /bzt rong/ [USENET/Internet] From a Robin Williams
  3076.    routine in the movie "Dead Poets Society" spoofing radio or
  3077.    TV quiz programs, such as *Truth or Consequences*, where an
  3078.    incorrect answer earns one a blast from the buzzer and condolences
  3079.    from the interlocutor.  A way of expressing mock-rude disagreement,
  3080.    usually immediately following an included quote from another
  3081.    poster.  The less abbreviated "*Bzzzzt*, wrong, but thank you for
  3082.    playing."  is also common; capitalization and emphasis of the
  3083.    buzzer sound varies.
  3084.  
  3085.